ActivityMQ入门笔记
2018-03-29 22:54 假的小胖子 阅读(4553) 评论(0) 收藏 举报1.下载ActivityMQ
官方网站:http://activemq.apache.org/download.html
我下载的是ActiveMQ 5.15.3 Release版
2.运行ActivityMQ
解压apache-activemq-5.15.3-bin.zip 进入该文件夹的bin目录
有两种方式启动ActivityMQ服务
2.1在bin目录下用cmd命令activemq start 启动服务,关掉黑窗口服务即停止
2.1进入bin目录下对应电脑位数的文件夹,64位进入win64,双击InstallService.bat批处理文件安装ActiveMQ服务,然后打开任务管理器启动ActiveMQ服务
启动服务后打开浏览器输入:http://localhost:8161/admin/ 输入默认设置的账户:admin密码admin
点击队列(Queues),输入队列名称(Queue Name)FirstQueue,然后点创建(Craete)
3.创建maven项目
添加一个activemq-all-5.15.3.jar即可,在pom.xml加入
<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.15.3</version> </dependency>
结构如图

Producer.java
1 package com.hushunwei.ActivityMQ; 2 3 import javax.jms.Connection; 4 import javax.jms.ConnectionFactory; 5 import javax.jms.DeliveryMode; 6 import javax.jms.Destination; 7 import javax.jms.JMSException; 8 import javax.jms.MessageProducer; 9 import javax.jms.Session; 10 import javax.jms.TextMessage; 11 12 import org.apache.activemq.ActiveMQConnection; 13 import org.apache.activemq.ActiveMQConnectionFactory; 14 15 /** 16 * 17 * @author 生产者 18 * 19 */ 20 public class Producer { 21 22 //默认连接用户名 23 private static final String USERNAME = ActiveMQConnection.DEFAULT_USER; 24 //默认连接密码 25 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; 26 //默认连接地址 27 private static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL; 28 29 public static void main(String[] args) { 30 //连接工厂 31 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL); 32 33 try { 34 //连接 35 Connection connection = connectionFactory.createConnection(); 36 //启动连接 37 connection.start(); 38 //创建session 39 Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); 40 //消息目的地 41 Destination destination = session.createQueue("FirstQueue"); 42 //消息生产者 43 MessageProducer producer = session.createProducer(destination); 44 //设置不持久化,此处学习,实际根据项目决定 45 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 46 47 //发送消息 48 for (int i = 0; i < 5; i++) { 49 //创建一条文本消息 50 TextMessage message = session.createTextMessage("ActiveMQ: 这是第 " + i + " 条消息"); 51 //生产者发送消息 52 producer.send(message); 53 } 54 55 session.commit(); 56 session.close(); 57 connection.close(); 58 } catch (JMSException e) { 59 e.printStackTrace(); 60 } 61 } 62 }
Consumer.java
1 package com.hushunwei.ActivityMQ; 2 3 import javax.jms.Connection; 4 import javax.jms.ConnectionFactory; 5 import javax.jms.Destination; 6 import javax.jms.JMSException; 7 import javax.jms.MessageConsumer; 8 import javax.jms.Session; 9 import javax.jms.TextMessage; 10 11 import org.apache.activemq.ActiveMQConnection; 12 import org.apache.activemq.ActiveMQConnectionFactory; 13 14 /** 15 * 16 * @author 消费者 17 * 18 */ 19 public class Consumer { 20 21 //默认连接用户名 22 private static final String USERNAME = ActiveMQConnection.DEFAULT_USER; 23 //默认连接密码 24 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD; 25 //默认连接地址 26 private static final String BROKER_URL = ActiveMQConnection.DEFAULT_BROKER_URL; 27 28 public static void main(String[] args) { 29 //连接工厂 30 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER_URL); 31 try { 32 //连接 33 Connection connection = connectionFactory.createConnection(); 34 //启动连接 35 connection.start(); 36 //创建session 37 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 38 //消息目的地 39 Destination destination = session.createQueue("FirstQueue"); 40 //消息消费者 41 MessageConsumer consumer = session.createConsumer(destination); 42 while (true) { 43 TextMessage message = (TextMessage) consumer.receive(); 44 if (message != null) { 45 System.out.println("接收到消息: " + message.getText()); 46 } else { 47 break; 48 } 49 } 50 session.close(); 51 connection.close(); 52 } catch (JMSException e) { 53 e.printStackTrace(); 54 } 55 } 56 }
4.测试结果
先运行Producer(生产者),再运行Consumer(消费者)
结果如图

浙公网安备 33010602011771号