消息队列-ActiveMQ的使用(Windows系统)

来源:互联网 发布:matlab 矩阵运算 编辑:程序博客网 时间:2024/04/29 19:36

1.去官网http://activemq.apache.org/下载解压文件apache-activemq-5.15.2-bin.zip,如下图所示:

  

2.下载完成后,解压到本地目录(我放在了D盘),我的电脑是Windows系统64位的,所以进入

D:\apache-activemq-5.15.2-bin\apache-activemq-5.15.2\bin\win64 的文件夹,找到activemq.bat,如下图所示:

          

3.双击activemq.bat,进入消息队列,展示如下图所示:

   

    ActiveMQ默认使用的TCP连接端口是61616,启动后,登录http://localhost:8161/admin/ ,默认用户名和密码为admin,admin,进入控制台功能,如下图所示:

        

4.打开Eclipse,建立名为MQ的Java项目,使用Maven管理依赖,所以创建pom.xml,代码如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>activemq-sample</groupId><artifactId>activemq-sample</artifactId><version>0.0.1-SNAPSHOT</version><name>activemq-sample</name><description>an activemq practice</description><build><sourceDirectory>src</sourceDirectory><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.7</source><target>1.7</target></configuration></plugin><!-- activemq-core 5.7.0 使用bunble打包,需要添加相关插件 --><plugin><groupId>org.apache.felix</groupId><artifactId>maven-bundle-plugin</artifactId><extensions>true</extensions></plugin></plugins></build><dependencies><!-- activemq的maven依赖 --><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>5.7.0</version><type>bundle</type></dependency></dependencies></project>

5.在项目下建立lib文件夹,放activemq-all-5.15.2.jar,并配置到路径中,此jar包可在解压文件中找到,如下图所示:

           

6.消费者MsgConsumer类代码,如下:

package mq;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class MsgConsumer implements MessageListener {private static final String BROKER_URL = "failover://tcp://localhost:61616";public static void main(String[] args) throws JMSException {// 创建连接工厂ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);// 获得连接Connection conn = connectionFactory.createConnection();// startconn.start();// 创建Session,此方法第一个参数表示会话是否在事务中执行,第二个参数设定会话的应答模式Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);// 创建队列Destination dest = session.createQueue("test-queue");// 创建消息生产者MessageConsumer consumer = session.createConsumer(dest);// 初始化MessageListenerMsgConsumer msgConsumer = new MsgConsumer();// 给消费者设定监听对象consumer.setMessageListener(msgConsumer);}/** * 消费者需要实现MessageListener接口 接口有一个onMessage(Message message)需要在此方法中做消息的处理 */@Overridepublic void onMessage(Message msg) {TextMessage txtMessage = (TextMessage) msg;try {System.out.println("get message:" + txtMessage.getText());} catch (JMSException e) {e.printStackTrace();}}}

7.生产者MsgProducer类代码,如下:

package mq;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class MsgProducer {// 如果你在本地启动,可以直接使用空的ActiveMQConnectionFactory构造函数private static final String BROKER_URL = "failover://tcp://localhost:61616";public static void main(String[] args) throws JMSException, InterruptedException {// 创建连接工厂ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);// 获得连接Connection conn = connectionFactory.createConnection();// startconn.start();// 创建Session,此方法第一个参数表示会话是否在事务中执行,第二个参数设定会话的应答模式Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);// 创建队列Destination dest = session.createQueue("test-queue");// 创建消息生产者MessageProducer producer = session.createProducer(dest);for (int i = 0; i < 100; i++) {// 初始化一个mq消息TextMessage message = session.createTextMessage("这是第 " + i + " 条消息!");// 发送消息producer.send(message);System.out.println("send message:消息" + i);// 暂停3秒Thread.sleep(3000);}// 关闭mq连接conn.close();}}

8.配置jdk版本

     此项目需要系统配置和Eclipse配置jdk版本相同,我使用的是jdk1.8,三处需要配置检查,避免出现报错

1)鼠标右键点击MQ项目,进入properties,选中jdk版本为1.8,如下图所示:

         

2)工具栏Windows,选择Preference-Java-Complier,jdk版本为1.8,如下图所示:

         

3)计算机的环境变量,配置为jdk1.8所在的目录,如下图所示:

         

9.先运行消费者MsgConsumer,在运行生产者MsgProducer,仔细观察规律(建议在MsgConsumer下debug下断点),activeMQ使用中,结果如下图所示:

               

     通过这个实例可以对ActiveMQ的应用有一个简单的了解。



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小白杨肉 小白杨46肉在线阅读 校园里的小白杨 小白杨46章删减部分 一棵小白杨 小白杨114肉在线阅读 歌曲小白杨闫维文 小白杨歌曲原唱mp3 一棵小白杨阅读答案 小白杨 水千丞 小白杨谁唱的 一棵小白杨阎维文演唱 小白杨歌词歌词 小白杨原唱 小白杨铃声下载 小白杨阎维文 歌曲小白杨原唱 一棵小白杨歌曲 小白杨下载 歌曲小白杨 小白杨歌词 阎维文 小白扬歌词 baiyang 白板照片 白板背景 背景白板 小白板规格 小白加小白 什么是小白 小白楼 天津小白楼 天津小白楼宾馆 天津小白楼 住宿 小白点设置 新生儿脸上小白点 眼皮小白点 眼皮上长小白点 iphone小白点怎么设置 小白点怎么设置 包皮小白点 ios13小白点