ActiveMQ实现消息消费者方式一
2017-05-16 00:00
316 查看
摘要: 版本使用 activemq-all-5.14.5
####创建ActiveMQ消息消费者
创建一个普通的Java项目。
引入ActiveMQ jar包 这里引入的是 activemq-all-5.14.5.jar 在ActiveMQ安装包里面有。
简单代码如下所示:
####代码解释
ConnectionFactory 创建ActiveMQ服务器连接工厂
connection = connectionFactory.createConnection(); 创建ActiveMQ服务器连接
connection.setClientID("消费者1"); 设置连接名,这一步也不是必须的,可以忽略,ActiveMQ会自动生成一个连接名
connection.start(); 启动ActiveMQ服务器连接
connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 创建连接会话,这里采用非事务模式接收消息
Destination destination = session.createQueue("mq.queue"); 通过连接会话创建消息目的地
MessageConsumer messageConsumer = session.createConsumer(destination); 通过连接会话创建消息消费者
TextMessage textMessage = (TextMessage) messageConsumer.receive(); 这里表示接收消息,消息的类型有多种,可查阅相关文档,一般都会采用 TextMessage 常用的文本方式。
####创建ActiveMQ消息消费者
创建一个普通的Java项目。
引入ActiveMQ jar包 这里引入的是 activemq-all-5.14.5.jar 在ActiveMQ安装包里面有。
简单代码如下所示:
package com.example.activemq; 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 MQConsumer { public static void main(String[] args) { ConnectionFactory connectionFactory;//连接工厂 Connection connection=null;//连接 Session session;//会话 Destination destination;//消息目的地 MessageConsumer messageConsumer ;//消息消费者 //实例化工厂 connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, ActiveMQConnection.DEFAULT_BROKER_URL); try { connection = connectionFactory.createConnection();//创建连接 connection.setClientID("消费者1"); connection.start();//启动连接 session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//这里不采用事务模式接收消息 destination = session.createQueue("mq.queue");//创建消息目的地 messageConsumer = session.createConsumer(destination);//创建消息消费者 while (true) { TextMessage textMessage = (TextMessage) messageConsumer.receive();//无参数表示一直等待接收消息 if(textMessage!=null){ System.out.println("订阅者1接收到ActiveMQ消息:"+textMessage.getText()); }else{ break; } } } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(connection!=null){ try { connection.close(); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
####代码解释
ConnectionFactory 创建ActiveMQ服务器连接工厂
connection = connectionFactory.createConnection(); 创建ActiveMQ服务器连接
connection.setClientID("消费者1"); 设置连接名,这一步也不是必须的,可以忽略,ActiveMQ会自动生成一个连接名
connection.start(); 启动ActiveMQ服务器连接
connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 创建连接会话,这里采用非事务模式接收消息
Destination destination = session.createQueue("mq.queue"); 通过连接会话创建消息目的地
MessageConsumer messageConsumer = session.createConsumer(destination); 通过连接会话创建消息消费者
TextMessage textMessage = (TextMessage) messageConsumer.receive(); 这里表示接收消息,消息的类型有多种,可查阅相关文档,一般都会采用 TextMessage 常用的文本方式。
总结
这里主要简单得展示了如何创建一个消息消费者接收ActiveMQ消息,下一篇将介绍我们如何使用的注册监听器的方式来接收消息。相关文章推荐
- spring整合apache activemq实现消息发送的三种方式代码配置实例
- ActiveMQ的消息持久化---JDBC的实现方式
- ActiveMQ的Topic方式实现异步的邮件发送和接收消息(m 3ff0
- 用消息的方式实现线程通信
- java分布式,基于开源框架实现消息方式
- ActiveMQ实现消息队列
- activeMQ的高级特性之messageGroup,一个队列多个消息消费者
- ActiveMQ持久化消息的三种方式
- [Android学UI之三]实现新浪微博消息页面左右滑动页面方式二(二)
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- JAVA synchronized 线程经典 生产者消费者 两个完全不同的实现的方式
- 总结用三种方式实现类似MSN的消息弹出框
- (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画
- 用IBM-MQTT方式实现Android 推送消息机制
- ActiveMQ持久化消息的三种方式
- ActiveMQ5.0.1+Spring实现JMS异步消息发送
- 解读ATL/WTL/MFC消息映射的实现方式
- HTTP 通信, 三种方式XML 解析,并通过 Hander 实现异步消息处理
- JAVA synchronized 线程经典 生产者消费者 两个完全不同的实现的方式