JMS 发布/订阅模式案例
程序员文章站
2022-05-04 07:49:16
...
一、发布/订阅模式
消息生产者
创建类TopicProducer ,main方法代码如下:
//1.创建连接工厂
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.2.100:61616");
//2.获取连接
Connection connection = connectionFactory.createConnection();
//3.启动连接
connection.start();
//4.获取session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.创建主题对象
Topic topic = session.createTopic("test-topic");
//6.创建消息生产者
MessageProducer producer = session.createProducer(topic);
//7.创建消息
TextMessage textMessage = session.createTextMessage("欢迎");
//8.发送消息
producer.send(textMessage);
//9.关闭资源
producer.close();
session.close();
connection.close();
2.消息消费者
创建类TopicConsumer ,main方法代码如下:
//1.创建连接工厂
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.2.100:61616");
//2.获取连接
Connection connection = connectionFactory.createConnection();
//3.启动连接
connection.start();
//4.获取session (参数1:是否启动事务,参数2:消息确认模式)
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5.创建主题对象
//Queue queue = session.createQueue("test-queue");
Topic topic = session.createTopic("test-topic");
//6.创建消息消费
MessageConsumer consumer = session.createConsumer(topic);
//7.监听消息
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage textMessage=(TextMessage)message;
try {
System.out.println("接收到消息:"+textMessage.getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
//8.等待键盘输入
System.in.read();
//9.关闭资源
consumer.close();
session.close();
connection.close();
3.运行测试
同时开启2个以上的消费者,再次运行生产者,观察每个消费者控制台的输出,会发现每个消费者会接收到消息
上一篇: SVGA JAVA库在源码AOSP Android.mk中引用及应用
下一篇: SVGA源码
推荐阅读
-
js发布/订阅模式代码教程
-
JavaScript事件发布/订阅模式原理与用法分析
-
JavaScript实现与使用发布/订阅模式详解
-
使用EventBus + Redis发布订阅模式提升业务执行性能(下)
-
RabbitMQ指南之三:发布/订阅模式(Publish/Subscribe)
-
[JS设计模式]:观察者模式(即发布-订阅者模式)(4)
-
C/S模式,发布/订阅模式和PUSH/PULL模式(上)
-
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
-
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
-
【node不完全指西】EventEmitter(事件发布/订阅模式)解析-考拉阅读前端团队-SegmentFault思否