首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

深入掌握JMS(5):实战Topic

2013-04-09 
深入掌握JMS(五):实战Topicimport javax.jms.Connectionimport javax.jms.JMSExceptionimport javax.jms

深入掌握JMS(五):实战Topic

import javax.jms.Connection;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.TextMessage;import javax.jms.Topic;import org.apache.activemq.ActiveMQConnectionFactory;import org.apache.activemq.command.ActiveMQTopic;public class TopicTest { public static void main(String[] args) throws Exception { ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost"); Connection connection = factory.createConnection(); connection.start(); //创建一个Topic Topic topic= new ActiveMQTopic("testTopic"); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //注册消费者1 MessageConsumer comsumer1 = session.createConsumer(topic); comsumer1.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { System.out.println("Consumer1 get " + ((TextMessage)m).getText()); } catch (JMSException e) { e.printStackTrace(); } } }); //注册消费者2 MessageConsumer comsumer2 = session.createConsumer(topic); comsumer2.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { System.out.println("Consumer2 get " + ((TextMessage)m).getText()); } catch (JMSException e) { e.printStackTrace(); } } }); //创建一个生产者,然后发送多个消息。 MessageProducer producer = session.createProducer(topic); for(int i=0; i<10; i++){ producer.send(session.createTextMessage("Message:" + i)); } }}

?运行后得到下面的输出结果:

?

Consumer1 get Message:0

Consumer2 get Message:0

Consumer1 get Message:1

Consumer2 get Message:1

Consumer1 get Message:2

Consumer2 get Message:2

Consumer1 get Message:3

Consumer2 get Message:3

Consumer1 get Message:4

Consumer2 get Message:4

Consumer1 get Message:5

Consumer2 get Message:5

Consumer1 get Message:6

Consumer2 get Message:6

Consumer1 get Message:7

Consumer2 get Message:7

Consumer1 get Message:8

Consumer2 get Message:8

Consumer1 get Message:9

Consumer2 get Message:9

?

说明每一个消息都会被所有的消费者消费。

热点排行