JMS&MQ,从入门到精通(二)
来源:互联网 发布:js 对象复制互不影响 编辑:程序博客网 时间:2024/06/07 09:10
上一篇,我们介绍了jms&mq的一对一的消息传输与消息处理,本章节我们再实现,2个消费者共同监听一个Queue,然后循环给这个Queue中发送多个消息,我们依然采用ActiveMQ来实现这个案例
1个队列多个监听者
场景如下图:
实现思路
new 一个queue,启动2个监听者对这个queue进行监听,处理数据,启动一个循环10次for循环,向这个队列里面放消息,让先前两个create的监听者进行处理
一个简单的实例
//create一个连接ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");Connection connection = factory.createConnection();connection.start();//创建一个QueueQueue queue = new ActiveMQQueue("testQueue");//创建一个Sessionfinal Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//注册消费者1MessageConsumer comsumer1 = session.createConsumer(queue);comsumer1.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { System.out.println("Consumer1 get --> :" + ((TextMessage)m).getText()); } catch (JMSException e) { e.printStackTrace(); } }});//注册消费者2MessageConsumer comsumer2 = session.createConsumer(queue);comsumer2.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { System.out.println("Consumer2 get --> : " + ((TextMessage)m).getText()); } catch (JMSException e) { e.printStackTrace(); } }});//创建一个生产者,然后发送多个消息。MessageProducer producer = session.createProducer(queue);for(int i=0; i<10; i++){ producer.send(session.createTextMessage("Message-" + i));}//可以看出每个消息直被消费了一次,但是如果有多个消费者同时监听一个Queue的话,无法确定一个消息最终会被哪一个消费者消费。
我们来运行,看结果如何:
结果和我们预期一致,下一篇我们介绍"发布&订阅"模式
0 0
- JMS&MQ,从入门到精通(二)
- JMS&MQ,从入门到精通(一)
- JMS&MQ,从入门到精通(三)
- JMS&MQ,从入门到精通(四)
- JMS&MQ,从入门到精通(五)
- JMS&MQ,从入门到精通(六)
- JMS&MQ,从入门到精通(七)
- JMS&MQ,从入门到精通(八)
- rabbit MQ从入门到精通专栏
- RMS从入门到精通之二
- RMS从入门到精通之二
- Java学习从入门到精通(二)
- RMS从入门到精通之二
- VI - 从入门到精通之二
- RMS从入门到精通之二
- Servlet从入门到精通二
- Nginx开发从入门到精通二
- ActiveMQ从入门到精通(二)
- BSP(BUSINESS SERVER PAGES)完整主机名设置及实现
- [php] 代码片段
- Velocity 模板出现NestedIOException: Cannot find Velocity template for URL [layout.vm]
- 使用SmbFile导出excel到共享文件目录
- rust所有权理解(备忘)
- JMS&MQ,从入门到精通(二)
- java操作pdf生成图片水印升级版
- Android开发
- 单片机开发——点亮你的LED小灯
- 安装CocoaPods错误需要Ruby2.2版本以上
- OpenGL ES _ 着色器_顶点着色器和片断着色器详解
- Java中出现了一个不知原因的NullPointerException
- 链表
- shell sp ,vs(p)多窗口操作