快速上手MQ之activeMQ(1)--Demo
2017-11-30 16:06
441 查看
activeMQ大家应该有所耳闻,MQ(Message Queue)顾名思义消息队列,说白了就是一个消息的接受和转发的容器,可用于消息推送,ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS实现。
下面我们开始着手玩一下
1、环境搭建
1.1、官网下载activeMQ :http://activemq.apache.org/
1.2、解压文件:
启动文件在bin文件夹里面,文件夹有win32和win64两个文件夹,点击启动里面的activemq.bat
1.3启动activeMQ
ActiveMQ默认使用的TCP连接端口是61616,后台监控访问地址为:http://127.0.0.1:8161/admin/ 用户和密码默认都是admin
1.4访问监控
ok这样我们环境就算搭建完了!
2、编写activeMQ例子
2.1新建maven项目,目录结构如下
2.2修改pom.xml
说明:仅一个jar包即可
2.3新建信息发布类producer
2.4新建信息消费者consumer
2.5 运行启动producer,然后查看activeMQ监控后台
我们可以看到发布了一个helloworld的队列,发布信息有1条
2.6运行启动消费者consumer
控制台可看到收到发布者发布的信息:
查看activeMQ监控器发现发布消息的条数已结为0:
OK这样我们也算是上手了activeMQ了
下面我们开始着手玩一下
1、环境搭建
1.1、官网下载activeMQ :http://activemq.apache.org/
1.2、解压文件:
启动文件在bin文件夹里面,文件夹有win32和win64两个文件夹,点击启动里面的activemq.bat
1.3启动activeMQ
ActiveMQ默认使用的TCP连接端口是61616,后台监控访问地址为:http://127.0.0.1:8161/admin/ 用户和密码默认都是admin
1.4访问监控
ok这样我们环境就算搭建完了!
2、编写activeMQ例子
2.1新建maven项目,目录结构如下
2.2修改pom.xml
<dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.9.0</version> </dependency> </dependencies>
说明:仅一个jar包即可
2.3新建信息发布类producer
package com.cwh.consumer; 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.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; /** * 消息的生产者(发送者) * */ public class JMSProducer { private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;//默认连接用户名 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;//默认连接密码 private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;//默认连接地址 public static void main(String[] args) { //连接工厂 ConnectionFactory connectionFactory; //连接 Connection connection = null; //会话 接受或者发送消息的线程 Session session; //消息的目的地 Destination destination; //消息生产者 MessageProducer messageProducer; //实例化连接工厂 connectionFactory = new ActiveMQConnectionFactory(JMSProducer.USERNAME, JMSProducer.PASSWORD, JMSProducer.BROKEURL); try { //通过连接工厂获取连接 connection = connectionFactory.createConnection(); //启动连接 connection.start(); //创建session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); //创建一个名称为HelloWorld的消息队列 destination = session.createQueue("HelloWorld"); //创建消息生产者 messageProducer = session.createProducer(destination); //发送消息 //创建一条文本消息 TextMessage message = session.createTextMessage("ActiveMQ 发布消息"); //通过消息生产者发出消息 messageProducer.send(message); session.commit(); } catch (Exception e) { e.printStackTrace(); }finally{ if(connection != null){ try { connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } } }
2.4新建信息消费者consumer
package com.cwh.producer; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; /** * 消息的消费者(接受者) * */ public class JMSConsumer { private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;//默认连接用户名 private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;//默认连接密码 private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;//默认连接地址 public static void main(String[] args) { ConnectionFactory connectionFactory;//连接工厂 Connection connection = null;//连接 Session session;//会话 接受或者发送消息的线程 Destination destination;//消息的目的地 MessageConsumer messageConsumer;//消息的消费者 //实例化连接工厂 connectionFactory = new ActiveMQConnectionFactory(JMSConsumer.USERNAME, JMSConsumer.PASSWORD, JMSConsumer.BROKEURL); try { //通过连接工厂获取连接 connection = connectionFactory.createConnection(); //启动连接 connection.start(); //创建session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //创建一个连接HelloWorld的消息队列 destination = session.createQueue("HelloWorld"); //创建消息消费者 messageConsumer = session.createConsumer(destination); while (true) { TextMessage textMessage = (TextMessage) messageConsumer.receive(100000); if(textMessage != null){ System.out.println("收到的消息:" + textMessage.getText()); }else { break; } } } catch (JMSException e) { e.printStackTrace(); } } }
2.5 运行启动producer,然后查看activeMQ监控后台
我们可以看到发布了一个helloworld的队列,发布信息有1条
2.6运行启动消费者consumer
控制台可看到收到发布者发布的信息:
查看activeMQ监控器发现发布消息的条数已结为0:
OK这样我们也算是上手了activeMQ了
相关文章推荐
- 快速上手MQ之activeMQ(3)--订阅者模式
- 快速上手MQ之activeMQ(4)--消息持久化
- 快速上手MQ之activeMQ(2)--spring整合
- 聊天系统Demo,增加文件传送功能(附源码)-- ESFramework 4.0 快速上手(14)
- 消息队列:快速上手ActiveMQ消息队列的JMS方式使用(两种模式:Topic和Queue的消息推送和订阅)
- 一个简单的IM系统(Demo附源码)-- ESFramework 4.0 快速上手(08)
- 【附Demo】iOS快速上手应用内购(IAP)
- 3 Angular 2 快速上手启动项目Demo
- 聊天系统Demo,增加Silverlight客户端(附源码)-- ESFramework 4.0 快速上手(09)
- 一个简单的IM系统(Demo附源码)-- ESFramework 4.0 快速上手(08)
- ActiveMQ快速上手
- 聊天系统Demo,增加文件传送功能(附源码)-- ESFramework 4.0 快速上手(14)
- Spring Boot 快速上手(七)集成ActiveMQ
- activeMQ配置,mq使用方法,activeMQ示例,activeMQDemo
- 聊天系统Demo,增加Silverlight客户端(附源码)-- ESFramework 4.0 快速上手(09)
- 一个Demo快速上手AsyncTask
- Masonry快速上手
- SQL游标快速上手
- 小程序快速上手:三步完成小程序从无到有的开发
- Spring MVC快速上手教程