ActiveMQ发布订阅模式
2016-08-17 15:09
393 查看
编写Test实现activeMQ消息发布。
编程Test2实现客户端1订阅消息。Test3实现客户端订阅消息。
分别运行Test1.2.3.即可。
import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import org.apache.activemq.ActiveMQConnectionFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "classpath:spring-context.xml"); ActiveMQConnectionFactory factory = (ActiveMQConnectionFactory) context.getBean("targetConnectionFactory"); Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Topic topic = session.createTopic("topMessage"); MessageProducer producer = session.createProducer(topic); producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); while (true) { TextMessage message = session.createTextMessage(); message.setText(System.currentTimeMillis()+""); producer.send(message); System.out.println("发送消息: " + message.getText()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
编程Test2实现客户端1订阅消息。Test3实现客户端订阅消息。
import javax.jms.Connection; 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.ActiveMQConnectionFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test2 { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "classpath:spring-context.xml"); ActiveMQConnectionFactory factory = (ActiveMQConnectionFactory) context .getBean("targetConnectionFactory"); Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Topic topic = session.createTopic("topMessage"); MessageConsumer consumer = session.createConsumer(topic); consumer.setMessageListener(new MessageListener() { public void onMessage(Message message) { TextMessage tm = (TextMessage) message; try { System.out.println("客户端1接收消息: " + tm.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); } }
import javax.jms.Connection; 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.ActiveMQConnectionFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test3 { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "classpath:spring-context.xml"); ActiveMQConnectionFactory factory = (ActiveMQConnectionFactory) context .getBean("targetConnectionFactory"); Connection connection = factory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Topic topic = session.createTopic("topMessage"); MessageConsumer consumer = session.createConsumer(topic); consumer.setMessageListener(new MessageListener() { public void onMessage(Message message) { TextMessage tm = (TextMessage) message; try { System.out.println("客户端2接收消息: " + tm.getText()); } catch (JMSException e) { e.printStackTrace(); } } }); } }
分别运行Test1.2.3.即可。
相关文章推荐
- 分布式消息中间件(二)——ActiveMQ发布-订阅消息模式
- ActiveMQ的发布订阅模式
- Spring Redis与ActiveMQ发布订阅模式源码分析
- MQ系列-ActiveMQ发布/订阅模式
- ActiveMQ发布订阅模式
- 使用Spring配置ActiveMQ的发布订阅模式
- activemq 发布订阅模式
- activeMQ发布订阅模式中中常用工具类
- JMS消息队列ActiveMQ(发布/订阅模式)
- (三)ActiveMQ之发布- 订阅消息模式实现
- activeMq的发布订阅模式
- ActiveMQ发布订阅模式
- ActiveMQ发布订阅模式
- 分布式服务框架学习笔记8 ActiveMQ入门2 发布/订阅模式
- activeMQ发布订阅模式中中常用工具类
- 使用Spring配置ActiveMQ的发布订阅模式
- JMS-activeMq发布订阅模式
- ActiveMQ 发布订阅(topic)模式_发送消息和接收消息
- JMS-activeMq发布订阅模式(非持久订阅)
- 第三章 ActiveMQ模拟股票价格涨跌(发布/订阅模式)