深入掌握JMS(五):实战Topic 1
2019独角兽企业重金招聘Python工程师标准>>>
与Queue不同的是,Topic实现的是发布/订阅模型,在下面的例子中,启动2个消费者共同监听一个Topic,然后循环给这个Topic中发送多个消息。
- import javax.jms.Connection;
- 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 javax.jms.Topic;
- import org.apache.activemq.ActiveMQConnectionFactory;
- import org.apache.activemq.command.ActiveMQTopic;
- public class TopicTest {
- public static void main(String[] args) throws Exception {
- ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
- Connection connection = factory.createConnection();
- connection.start();
- //创建一个Topic
- Topic topic= new ActiveMQTopic("testTopic");
- Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- //注册消费者1
- MessageConsumer comsumer1 = session.createConsumer(topic);
- comsumer1.setMessageListener(new MessageListener(){
- public void onMessage(Message m) {
- try {
- System.out.println("Consumer1 get " + ((TextMessage)m).getText());
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- });
- //注册消费者2
- MessageConsumer comsumer2 = session.createConsumer(topic);
- 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(topic);
- for(int i=0; i<10; i++){
- producer.send(session.createTextMessage("Message:" + i));
- }
- }
- }
运行后得到下面的输出结果:
- Consumer1 get Message:0
- Consumer2 get Message:0
- Consumer1 get Message:1
- Consumer2 get Message:1
- Consumer1 get Message:2
- Consumer2 get Message:2
- Consumer1 get Message:3
- Consumer2 get Message:3
- Consumer1 get Message:4
- Consumer2 get Message:4
- Consumer1 get Message:5
- Consumer2 get Message:5
- Consumer1 get Message:6
- Consumer2 get Message:6
- Consumer1 get Message:7
- Consumer2 get Message:7
- Consumer1 get Message:8
- Consumer2 get Message:8
- Consumer1 get Message:9
- Consumer2 get Message:9
说明每一个消息都会被所有的消费者消费。
转载于:https://my.oschina.net/201003674/blog/650198
深入掌握JMS(五):实战Topic 1相关推荐
- 深入掌握JMS(五):实战Topic
与Queue不同的是,Topic实现的是发布/订阅模型,在下面的例子中,启动2个消费者共同监听一个Topic,然后循环给这个Topic中发送多个消息. view plaincopy to clipbo ...
- 自定义菜单url不能带_微服务架构【SpringBoot+SpringCloud+VUE】五 || 实战项目微信公众号自定义开发...
本章主要讲解微信公众号自定义菜单.微信网页开发.模板消息推送等功能的实现: 发福利了,下方关注公众号,就能免费获取项目源码 1.自定义菜单 开发前需要了解以下几点: 1.微信公众号的自定义菜单最多包括 ...
- 十五. 实战——mysql建库建表 字符集 和 排序规则
1. 字符集和排序规则 字符集 当数据库需要适应不同的语言就需要有不同的字符集,如果不指定字符集的话,那么就会使用数据库的默认的字符集,每种字符集都有自己默认的排序规则.mysql默认字符集为utf8 ...
- 深入掌握JMS JMSCorrelationID与Selector
http://wangh8080.blog.163.com/blog/static/197848297201241843917244/ 深入掌握JMS(一):JSM基础 2012-05-18 16:3 ...
- [z]JMS简明学习教程
基础篇 JMS是应用系统或组件之间相互通信的应用程序接口,利用它,我们可以轻易实现在不同JVM之间相互的远程通信.要实现远程通信,RPC同样也能做到,但RPC却不可避免地增加了不同系统之间的耦合度,J ...
- (转)JMS简明学习教程
转:http://www.cnblogs.com/jjj250/archive/2012/08/08/2628552.html 基础篇 JMS是应用系统或组件之间相互通信的应用程序接口,利用它,我们可 ...
- 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例
转载:http://blog.csdn.net/jiuqiyuliang/article/details/48758203 第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模 ...
- SpringBoot整合RabbitMQ 实现五种消息模型
目录 SpringBoot中使用RabbitMQ 搭建初始环境 引入依赖 配置配置文件 测试类 注入 rabbitTemplate 消息队列RabbitMQ之五种消息模型 第一种直连模型使用 开发生产 ...
- spring和activemq的结合(五)
转载:http://blog.csdn.net/jiuqiyuliang/article/details/48758203 前言 这篇博文,我们基于spring+JMS+ActiveMQ+Tomcat ...
- JMS学习(4):--Spring和ActiveMQ整合的完整实例
前言 这篇博文,我们基于spring+JMS+ActiveMQ+Tomcat,做一个Spring4.1.0和ActiveMQ5.11.1整合实例,实现了Point-To-Point的异步队列消息和PU ...
最新文章
- python_ 学习笔记(hello world)
- job每分钟执行 oracle_oracle job 时间每五分钟执行怎么写
- 独木舟上的旅行(贪心)
- Python基础(19)_异常处理
- Jenkins分布式构建和部署(master-slave)
- 学习总结——接口测试基础
- AI 会替代程序员?超好用的自动补全代码工具 Deep TabNine!
- 随机变量的数字特征(期望、方差、标准差、矩、协方差...)
- PHP安装Xdebug调试工具
- Axure 8.1.0.3388授权码
- mysql定时备份脚本
- android上的sip软电话
- java计算机毕业设计会议管理系统MyBatis+系统+LW文档+源码+调试部署
- 谷歌浏览器(chrome)无法正常打开网页的解决办法
- NOIP 2017 游记
- 如何用PS把图片中的人物剪掉
- 童鞋想盗取我十几个G的“种子”,看我是用python来层层加锁!!!
- 做为一个玩家如何架设传奇
- php 模拟数猴子数大王,猴子大王的问题
- 经济学基础(本)【3】
热门文章
- php什么是同源策略,javascript - 绕过同源策略的方法
- java404_java这个404你能解决吗?
- ps软件电脑版_安装PS/AI/CDR软件,电脑配置的怎样?
- webgis 行政图报错_开源WebGIS:地图发布与地图服务
- pycharm查询mysql数据库_pycharm访问mysql数据库的方法步骤
- Flutter状态管理学习手册(三)——Bloc
- R实践 第二篇:创建数据集
- 制作pip源(按需,非镜像方式)
- Python操作IHTMLDocument2用于自动化测试
- Spark 概念学习系列之从物理执行的角度透视spark Job(十七)