JMS--队列模式代码实现 (二)
来源:互联网 发布:js做99乘法表 编辑:程序博客网 时间:2024/06/03 20:46
- 编程接口图
- 代码实现
- 准备
- 生产者
- 消费者
参考文档:
深入浅出JMS(三)–ActiveMQ简单的HelloWorld实例
http://blog.csdn.net/jiuqiyuliang/article/details/48608237
编程接口图
代码实现
准备
仅需添加avtivemq-all.jar
目录结构
src jms --JMSProsucer --JMSConsumerLibrary --activmq-all.jar
生产者
package jms;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;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 { /** * @param args */ private static final String url=ActiveMQConnection.DEFAULT_BROKER_URL; private static final String queueName="queue-test"; public static void main(String[] args) throws JMSException { //1.创建ConnectionFactory ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); //2.创建Connection Connection connection= connectionFactory.createConnection(); //3.启动 connection.start(); //4.创建会话Session arg1:是否处理事务 arg2:自动应答 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //5.创建目标 Destination destination =session.createQueue(queueName); //6.创建生产者 MessageProducer producer = session.createProducer(destination); //多次向目的地发送消息 for(int i=0;i<100;i++){ //7.创建消息 TextMessage textMessage = session.createTextMessage("testMesssage "+i); //8.生产者发布消息 producer.send(textMessage); System.out.println("发送消息 "+textMessage.getText() ); } //9.关闭连接 connection.close(); }}
消费者
package jms;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.MessageProducer;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 url=ActiveMQConnection.DEFAULT_BROKER_URL; private static final String queueName="queue-test"; public static void main(String[] args) throws JMSException { //1.创建ConnectionFactory ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); //2.创建Connection Connection connection= connectionFactory.createConnection(); //3.启动 connection.start(); //4.创建会话Session arg1:是否处理事务 arg2:自动应答 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //5.创建目标 Destination destination =session.createQueue(queueName); //6.创建生产者 MessageConsumer consumer = session.createConsumer(destination); //7.创建监听器 consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message mes) { TextMessage textMessage = (TextMessage) mes; try { System.out.println("接受消息 "+ textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); //8.关闭连接,注意:结束的时候再关,因为要一直监听 //connection.close(); }}
http://127.0.0.1:8161可以看到web视图。
运行一次生产者和两次消费者,可以看到控制台:
INFO | Successfully connected to tcp://localhost:61616发送消息 testMesssage 0发送消息 testMesssage 1发送消息 testMesssage 2发送消息 testMesssage 3发送消息 testMesssage 4...发送消息 testMesssage 99
INFO | Successfully connected to tcp://localhost:61616接受消息 testMesssage 1接受消息 testMesssage 3接受消息 testMesssage 5...接受消息 testMesssage 99
INFO | Successfully connected to tcp://localhost:61616接受消息 testMesssage 0接受消息 testMesssage 1接受消息 testMesssage 2...接受消息 testMesssage 98
阅读全文
0 0
- JMS--队列模式代码实现 (二)
- JMS-主题模式代码实现(三)
- 10.JMS消息模式(队列模式和主题模式)
- FUSE 内核实现代码分析(二) 队列管理
- 消息队列入门(三)JMS标准及实现
- JMS学习(二)
- 小实验-ActiveMQ实现jms监听队列
- JMS之Spring +activeMQ实现消息队列
- 自己动手实现消息队列之JMS
- 自己动手实现消息队列之JMS
- JMS入门(二)--JMS简单例子
- JMS入门(二)--JMS简单例子
- JMS入门(二)--JMS简单例子
- JMS入门(二)--JMS简单例子
- Spring整合JMS-基于activeMQ实现(二)
- activeMQ消息队列之JMS基础(附了一些代码帮助理解前期可跳过)
- JMS(二)之发布/订阅模式
- Spring + JMS + ActiveMQ实现简单的消息队列(监听器异步实现)
- HDU 2044 一只小蜜蜂...(DP递推)
- 几个经典递归问题用js实现
- 远程启动VMware并连接虚拟机
- Linux/Android系统知识之Linux入门篇--学习使用命令行
- Altium Designer 集成库的创建
- JMS--队列模式代码实现 (二)
- 八皇后问题(回溯法)
- poj1459 Power Network题解
- Android View框架的layout机制
- 关于#if #endif
- 网络中的端口分类调研
- 最大的位或
- STM32上使用UCOSII--消息队列和信号量集
- 学习Scrapy框架