当前位置: 首页 > news >正文

电商前期投资要多少钱福建seo快速排名优化

电商前期投资要多少钱,福建seo快速排名优化,做阿里巴巴网站没有专业客服吧,企业网站的优化ActiveMQ 安装 下载网址:ActiveMQ 一定要和自己安装的jdk版本匹配,不然会报错 下载到本地之后解压缩 有可能端口号被占用 解除端口号占用,参考:Windows_端口被占用 打开cmd 查询所有的端口号 netstat -nao查询指定端口号 n…

ActiveMQ

安装

下载网址:ActiveMQ

一定要和自己安装的jdk版本匹配,不然会报错

在这里插入图片描述
下载到本地之后解压缩

在这里插入图片描述
在这里插入图片描述
有可能端口号被占用

在这里插入图片描述

解除端口号占用,参考:Windows_端口被占用

打开cmd

查询所有的端口号

netstat -nao

在这里插入图片描述

查询指定端口号

netstat -ano|findstr 5672

查询什么程序在占用

tasklist | findstr "4756"

在这里插入图片描述

打开任务管理器看看这个程序

在这里插入图片描述

erl.exe是什么进程

Erlang 的执行程序,Erlang一种编程语言,多用于并发和分布式系统,现在最广泛使用在消息队列里面。

安装RabbitMQ的好像就是安装的这个,看来是RabbitMQ把这个端口给占用掉了,换个端口号

在这里插入图片描述

将5672改成55672

在这里插入图片描述

网址:http://localhost:8161/admin/

用户名:admin

密码:admin

在这里插入图片描述
成功。

使用

参考:消息队列之 ActiveMQ

在这里插入图片描述

Java访问ActiveMQ实例

在这里插入图片描述

引入依赖
		<dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>5.15.2</version></dependency>
消息生产者
package mq.activeMQ;import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class TopicPublisher {/*** 默认用户名*/public static final String USERNAME = ActiveMQConnection.DEFAULT_USER;/*** 默认密码*/public static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;/*** 默认连接地址*/public static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL;public static void main(String[] args) {//创建连接工厂ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL);try {//创建连接Connection connection = connectionFactory.createConnection();//开启连接connection.start();//创建会话,不需要事务Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//创建 Topic,用作消费者订阅消息Topic myTestTopic = session.createTopic("activemq-topic-test1");//消息生产者MessageProducer producer = session.createProducer(myTestTopic);for (int i = 1; i <= 3; i++) {TextMessage message = session.createTextMessage("发送消息 " + i);producer.send(myTestTopic, message);}//关闭资源session.close();connection.close();} catch (JMSException e) {e.printStackTrace();}}
}
消息消费者
package mq.activeMQ;import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;public class TopicSubscriber {/*** 默认用户名*/public static final String USERNAME = ActiveMQConnection.DEFAULT_USER;/*** 默认密码*/public static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;/*** 默认连接地址*/public static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL;public static void main(String[] args) {//创建连接工厂ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL);try {//创建连接Connection connection = connectionFactory.createConnection();//开启连接connection.start();//创建会话,不需要事务Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//创建 TopicTopic myTestTopic = session.createTopic("activemq-topic-test1");MessageConsumer messageConsumer = session.createConsumer(myTestTopic);messageConsumer.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message message) {try {System.out.println("消费者1 接收到消息:" + ((TextMessage) message).getText());} catch (JMSException e) {e.printStackTrace();}}});MessageConsumer messageConsumer2 = session.createConsumer(myTestTopic);messageConsumer2.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message message) {try {System.out.println("消费者2 接收到消息:" + ((TextMessage) message).getText());} catch (JMSException e) {e.printStackTrace();}}});MessageConsumer messageConsumer3 = session.createConsumer(myTestTopic);messageConsumer3.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message message) {try {System.out.println("消费者3 接收到消息:" + ((TextMessage) message).getText());} catch (JMSException e) {e.printStackTrace();}}});//让主线程休眠100秒,使消息消费者对象能继续存活一段时间从而能监听到消息Thread.sleep(100 * 1000);//关闭资源session.close();connection.close();} catch (Exception e) {e.printStackTrace();}}
}

gitee:JAVA集成AcitveMQ

启动ActiveMQ服务器

在这里插入图片描述

启动

在这里插入图片描述

Spring整合ActiveMQ

引入依赖
<dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>5.15.2</version>
</dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>4.3.10.RELEASE</version>
</dependency><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-pool</artifactId><version>5.15.0</version>
</dependency>
Spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><!--这里要改base-package="基础包"--><!--下面还有要改的,看注释--><context:component-scan base-package="com.example.spring_activemq.activeMQ"/><!--连接池--><bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop"><property name="connectionFactory"><bean class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL"><value>tcp://localhost:61616</value></property></bean></property><property name="maxConnections" value="100"></property></bean><!--缓存--><bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"><property name="targetConnectionFactory" ref="jmsFactory"/><property name="sessionCacheSize" value="1"/></bean><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><!--获取连接、会话等对象--><property name="connectionFactory" ref="cachingConnectionFactory"/><!--消息转换器--><property name="messageConverter"><bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/></property></bean><!--实际发送和接收消息的目的地--><bean id="testQueue" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg name="name" value="spring-queue"/></bean><bean id="testTopic" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg index="0" value="spring-topic"/></bean><!--这里也要改class=""--><!--队列消息下的监视器--><bean id="queueListener" class="com.example.spring_activemq.activeMQ.QueueListener"/><!--主题模式下的接收器--><bean id="topic1Listener" class="com.example.spring_activemq.activeMQ.Topic1Listener"/><bean id="topic2Listener" class="com.example.spring_activemq.activeMQ.Topic2Listener"/><!--将消息监视器绑定到具体的消息目的地上--><bean id="queueContainer"class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="cachingConnectionFactory"/><property name="destination" ref="testQueue"/><property name="messageListener" ref="queueListener"/></bean><bean id="topic1Container"class="org.springframework.jms.listener.DefaultMessageListenerContainer"><!--缓存--><property name="connectionFactory" ref="cachingConnectionFactory"/><!--目的地--><property name="destination" ref="testTopic"/><!--监视器--><property name="messageListener" ref="topic1Listener"/></bean><bean id="topic2Container"class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="cachingConnectionFactory"/><property name="destination" ref="testTopic"/><property name="messageListener" ref="topic2Listener"/></bean></beans>
消息服务类
package com.example.spring_activemq.activeMQ;import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import javax.jms.*;@Service
public class MessageService {@Resource(name = "jmsTemplate")private JmsTemplate jmsTemplate;@Resource(name = "testQueue")private Destination testQueue;@Resource(name = "testTopic")private Destination testTopic;//向队列发送消息public void sendQueueMessage(String messageContent) {jmsTemplate.send(testQueue, new MessageCreator() {@Overridepublic Message createMessage(Session session) throws JMSException {TextMessage msg = session.createTextMessage();// 设置消息内容msg.setText(messageContent);return msg;}});}//向主题发送消息public void sendTopicMessage(String messageContent) {jmsTemplate.send(testTopic, new MessageCreator() {@Overridepublic Message createMessage(Session session) throws JMSException {TextMessage msg = session.createTextMessage();// 设置消息内容msg.setText(messageContent);return msg;}});}
}
消息监听器类

队列监听器

package com.example.spring_activemq.activeMQ;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;public class QueueListener implements MessageListener {@Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {try {TextMessage txtMsg = (TextMessage) message;String messageStr = txtMsg.getText();System.out.println("队列监听器接收到文本消息:" + messageStr);} catch (JMSException e) {e.printStackTrace();}} else {throw new IllegalArgumentException("只支持 TextMessage 类型消息!");}}
}

订阅消息监听器

package com.example.spring_activemq.activeMQ;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;public class Topic1Listener implements MessageListener {@Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {try {TextMessage txtMsg = (TextMessage) message;String messageStr = txtMsg.getText();System.out.println("主题监听器1 接收到文本消息:" + messageStr);} catch (JMSException e) {e.printStackTrace();}} else {throw new IllegalArgumentException("只支持 TextMessage 类型消息!");}}
}
package com.example.spring_activemq.activeMQ;import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;public class Topic2Listener implements MessageListener {@Overridepublic void onMessage(Message message) {if (message instanceof TextMessage) {try {TextMessage txtMsg = (TextMessage) message;String messageStr = txtMsg.getText();System.out.println("主题监听器2 接收到文本消息:" + messageStr);} catch (JMSException e) {e.printStackTrace();}} else {throw new IllegalArgumentException("只支持 TextMessage 类型消息!");}}
}
启动应用
package com.example.spring_activemq.activeMQ;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class StartApplication {public static void main(String[] args) {//这里总是显示空指针,找半天也没找出来哪里错了,不找了,等以后学学再找。ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:spring-context.xml");MessageService messageService = (MessageService) ctx.getBean("messageService");messageService.sendQueueMessage("我的测试消息1");messageService.sendTopicMessage("我的测试消息2");messageService.sendTopicMessage("我的测试消息3");}}

gitee:Spring集成ActiveMQ

http://www.khdw.cn/news/68155.html

相关文章:

  • 做班级网站的素材百度自然排名优化
  • 企业网站可以自己做2022年新闻大事
  • 网站怎样做推广公司网络营销推广
  • 襄阳市做网站中央今日头条新闻
  • 医院网站前置审批如何在网上做销售推广
  • 和田网站建设品牌营销方案
  • 十堰做网站seo外链发布技巧
  • 网站排版设计欣赏上海百度推广电话客服
  • 没备案可以做网站么今日头条武汉最新消息
  • 医疗网站建设目录seo的主要工作是什么
  • 软件工程四大方向网站seo是干什么的
  • 免费的网站入口在哪苏州网站建设方案
  • com域名代表什么百度优化教程
  • 网站建设渠道合作网络营销方式包括哪些
  • 关于网站建设的简历seo接单平台有哪些
  • 老干部局网站建设舆情分析网站
  • 揭阳网站制作托管cba排名
  • 珠海网站建设网络公司怎么样梅州网络推广
  • 景点网站怎么做网站收录软件
  • 南昌市 做网站的公司济宁seo推广
  • 惠东县住房和城乡规划建设局网站网页制作在线生成
  • 平面作品集展示图片seo内部优化方式包括
  • 深圳做网站 肖先生营销团队找产品合作
  • 个体工商户 经营性网站外贸谷歌推广
  • 网站设计规划高中信息技术seo快速入门教程
  • 网站好友邀请链接生成 php新的营销模式有哪些
  • b2b货源网seo和点击付费的区别
  • 网站开发大公司需要资格证吗平台推广费用一般是多少
  • 2021中国十大软件公司排名沈阳seo收费
  • 上海装饰公司网站建设宁波网络推广