从零开始···AMQ主题模式实现
来源:互联网 发布:网络鬼故事之603房间 编辑:程序博客网 时间:2024/05/19 15:43
上一章实现了点对点的消息模式,接下来试着实现一下主题模式。
两者代码大致相同,但却让我纠结了好久才成功。
首先要理解一下主题模式的概念:
同样是发布者和消费者,这里发布者将消息发布到一个主题下,这时,订阅了这个主题的消费者就能接收到发布的消息。
简单来说,就像是订阅杂志,从你订阅杂志开始,你就能收到接下来出的杂志,但你肯定收不到之前已经发布的杂志。
这是与队列不同的地方,队列类似把消息放到一个地方,等着消费者过来取,取走了就没了,只有一份;主题是把消息复制发送给所有订阅了的消费者,只发送一次,所以后订阅的收不到这个消息。
以上是我的理解,有错误的地方请指正,谢谢。
接下来就是代码:
发布者的代码基本相同,唯一改变的地方是建立地址:
这里用的是createTopic方法,因为使用的是主题模式。
然后需要一个监听器,相当于帮助消费者订阅主题的:
import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;public class MyMessageListener implements MessageListener { @Override public void onMessage(Message message) { try { System.out.println("topic message" + ((TextMessage) message).getText()); } catch (JMSException e) { e.printStackTrace(); } }}
然后就是消费者的代码,同样修改不是很大:
这里修改了两个地方,一个是创建地址改为创建主题。另一个是将接收消息的操作交给监听器执行。
代码写好以后,先运行消费者类,然后运行发布者类。
在控制台可以看到输出:
我这里用了三个线程进行测试,可以看到三个消费者都分别拿到了消息数据。
阅读全文
0 0
- 从零开始···AMQ主题模式实现
- 从零开始···AMQ测试
- AMQ
- 从零开始制作 WordPress 主题
- AMQ: Publisher/Subscriber(发布/订阅者)消息模式开发流程
- Android通过改变主题实现夜间模式
- Android主题切换实现夜间模式
- JMS-主题模式代码实现(三)
- amq原理
- amq安装
- 从零开始···整合mybatis
- 从零开始···require.js
- 从零开始山寨Caffe·零:必先利其器
- 从零开始山寨Caffe·贰:主存模型
- 从零开始山寨Caffe·肆:线程系统
- 从零开始山寨Caffe·柒:KV数据库
- 从零开始山寨Caffe·玖:BlobFlow
- 从零开始山寨Caffe·贰:主存模型
- 人脸识别解锁
- 更换头像的逻辑代码,两个功能,一个是从图库选择,一个是打开相机自己拍照
- socket阻塞与非阻塞,同步与异步
- 171121之PLSQL安装
- div盒子水平居中垂直居中的几种方法
- 从零开始···AMQ主题模式实现
- 在centos下启动mysqld提示 unrecognized service
- Qt提供通过访问共享内存实现进程间通信
- 线段树的两道模板题 hdu1698 hdu1166
- loadrunner连接数据库
- 类初学
- ubuntu+virtualbox+winn10系统共享文件夹
- Opencv1、Opencv2 拍照片、写视频
- MYIR-ZYNQ7000系列-zturn教程(9):将bit文件固化到QSPI_Flash