JMS持久订阅(DurableSubscribe)模式示例
来源:互联网 发布:淘宝客户管理系统 编辑:程序博客网 时间:2024/06/05 04:24
为了缓和严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。
发布者:
package com.zzj.durablesubscriber;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Message;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.Topic;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;public class Producer {private static final String DEST = "com.zzj.dest.03";public static void main(String[] args) throws Exception {ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, ActiveMQConnection.DEFAULT_BROKER_URL);Connection connection = factory.createConnection();connection.start();Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);Topic topic = session.createTopic(DEST);MessageProducer producer = session.createProducer(topic);Message message = session.createTextMessage("Hello world!");producer.send(message);System.out.println("发送成功!");// 关闭资源producer.close();session.close();connection.close();}}
创建一个DurableSubscriber的两个前提条件是:
connection.setClientID("ClientID");
session.createDurableSubscriber(topic,"SubscriberName");
订阅者:
package com.zzj.durablesubscriber;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.MessageConsumer;import javax.jms.Session;import javax.jms.TextMessage;import javax.jms.Topic;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory;/** * 同步消费 * @author lenovo * */public class Customer {private static final String DEST = "com.zzj.dest.03";public static void main(String[] args) throws Exception {ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, ActiveMQConnection.DEFAULT_BROKER_URL);Connection connection = factory.createConnection();connection.setClientID("zzj.client01");connection.start();Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);Topic topic = session.createTopic(DEST);MessageConsumer consumer = session.createDurableSubscriber(topic, "zzj.subscriber01");TextMessage message = (TextMessage) consumer.receive(); // 阻塞方法,直到接收到消息System.out.println(message.getText());// 关闭资源consumer.close();session.close();connection.close();}}
阅读全文
0 0
- JMS持久订阅(DurableSubscribe)模式示例
- JMS发布订阅(Pub/Sub)模式示例
- JMS持久订阅
- 关于 Jms Topic 持久订阅
- JMS学习笔记(五)——持久的订阅
- JMS学习六(ActiveMQ Topic之持久订阅)
- JMS订阅模式消息
- 理解JMS规范中的持久订阅和非持久订阅
- 理解JMS规范中的持久订阅和非持久订阅
- 理解JMS规范中的持久订阅和非持久订阅
- 理解JMS规范中的持久订阅和非持久订阅
- JMS 消息持久订阅者测试
- JMS学习十一(Spring+ActiveMQ消息持久化,Topic持久化订阅)
- jms的消息订阅模式
- JMS消息机制--发布-订阅模式
- JMS(二)之发布/订阅模式
- ActiveMQ订阅模式持久化实现
- JMS点对点(P2P)模式示例
- Spark的Dataset操作(四)-其他单表操作
- 哈喽
- Linux-bash-管理用户账号
- 常用的Java数组操作
- 文本编辑器
- JMS持久订阅(DurableSubscribe)模式示例
- 编码(python)
- 2017 四川省赛 D.Dynamic Graph (思维 拓扑排序 bitset优化)
- java 23种设计模式
- svn,git及代码托管平台
- 通达OA二次开发 小飞鱼二次开发使用PHP连接SQLServer数据库(源码)
- javascript的面向对象详解
- Spring Batch 例子: 导入定长文件到数据库
- linux下nginx开启目录浏览功能