JMS发布订阅(Pub/Sub)模式示例
来源:互联网 发布:网络暴力英文ppt 编辑:程序博客网 时间:2024/05/18 02:02
发布者:
package com.zzj.pubsub;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.02";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();}}
同步订阅者:
package com.zzj.pubsub;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 SyncCustomer {private static final String DEST = "com.zzj.dest.02";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);MessageConsumer consumer = session.createConsumer(topic);TextMessage message = (TextMessage) consumer.receive(); // 阻塞方法,直到接收到消息System.out.println(message.getText());// 关闭资源consumer.close();session.close();connection.close();}}
异步订阅者:
package com.zzj.pubsub;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;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 AsynCustomer implements MessageListener{private static final String DEST = "com.zzj.dest.02";private static Connection connection;private static Session session;private static MessageConsumer consumer;public static void main(String[] args) throws Exception {ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, ActiveMQConnection.DEFAULT_BROKER_URL);connection = factory.createConnection();connection.start();session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);Topic topic = session.createTopic(DEST);consumer = session.createConsumer(topic);consumer.setMessageListener(new AsynCustomer());}@Overridepublic void onMessage(Message message) {TextMessage tm = (TextMessage) message;try {System.out.println(tm.getText());} catch (JMSException e) {e.printStackTrace();close(); // 关闭资源}}/** * 关闭资源 */private static void close(){try {consumer.close();} catch (JMSException e1) {e1.printStackTrace();}try {session.close();} catch (JMSException e) {e.printStackTrace();}try {connection.close();} catch (JMSException e) {e.printStackTrace();}}}
阅读全文
0 0
- JMS发布订阅(Pub/Sub)模式示例
- Pub/Sub 发布订阅
- 发布/订阅(Pub/Sub)
- Redis的发布/订阅(pub/sub)
- Redis发布与订阅(pub/sub)
- zeroMQ初体验-2.发布订阅模式(pub/sub)
- Redis命令学习-Pub/Sub(发布/订阅)
- redis源码分析之发布订阅(pub/sub)
- 分布式缓存Redis之发布/订阅(Pub/Sub)
- Redis Pub发布/sub订阅实现机制
- 9.Redis发布及订阅(pub/sub)
- Redis发布及订阅消息(pub/sub)
- Redis--pub/sub(发布与订阅)
- (十一)redis 发布与订阅(pub/sub)
- 【Redis】redis介绍-订阅推送(pub/sub)模式
- 基于ActiveMQ 的发布/订阅(Pub/Sub) Chat 示例,上传了源码
- Redis pub/sub机制在实际运用场景的缺陷&&模拟JMS消息发布订阅的持久化特性
- JMS持久订阅(DurableSubscribe)模式示例
- Java垃圾收集学习笔记
- 华为机试:计算字符串的距离、24点游戏算法
- Http状态码
- 【图论经典题】战争
- 常见的神经网络的优化方法
- JMS发布订阅(Pub/Sub)模式示例
- 前端面试题总结HTML CSS部分
- lua里实现table的序列化和反序列化
- 洛谷P3371 单源最短路径(Dijkstra+堆优化)
- noi 2017 游记
- tensorflow string_to_number to_double
- 【c#】DataTable分页处理
- 打印100的阶乘(大数问题,Java好解)
- B/S详解