zoukankan      html  css  js  c++  java
  • ActiveMQ之Topic

    与Queue不同,Topic实现的是发布/订阅模型,在下面的例子中,启动两个消费者共同监听一个Topic,然后循环给这个Topic发送多个消息。
    例子:
    public class TopicTest {
    public static void main(String[] args) {
    ActiveMQConnectionFactory connectionfactory=new ActiveMQConnectionFactory("vm://localhost");
    Connection con=null;
    Session session=null;
    try {
    con=connectionfactory.createConnection();
    con.start();
    session=con.createSession(false, Session.AUTO_ACKNOWLEDGE);
    } catch (JMSException e) {
    e.printStackTrace();
    }
    Topic topic=new ActiveMQTopic("TopicTest");
    //注册消费者1
    try {
    MessageConsumer consumer1=session.createConsumer(topic);
    consumer1.setMessageListener(new MessageListener(){
    public void onMessage(Message arg0) {
    try {
    System.out.println("消费者1接收到的消息 ----"+((TextMessage)arg0).getText());
    } catch (JMSException e) {
    e.printStackTrace();
    }
    }
    });
    } catch (JMSException e) {
    e.printStackTrace();
    }
    //注册消费者2
    try {
    MessageConsumer consumer2=session.createConsumer(topic);
    consumer2.setMessageListener(new MessageListener(){
    public void onMessage(Message arg0) {
    try {
    System.out.println("消费者2接收到的消息 ----"+((TextMessage)arg0).getText());
    } catch (JMSException e) {
    e.printStackTrace();
    }
    }
    });
    } catch (JMSException e) {
    e.printStackTrace();
    }
    //注册消息生产者 发送消息
    try {
    MessageProducer producer=session.createProducer(topic);
    for(int i=1;i<=10;i++)
    {
    producer.send(session.createTextMessage("message"+i));
    }
    } catch (JMSException e) {
    e.printStackTrace();
    } }
    }
    此实例说明:每一个消息都会被所有消费者消费。

  • 相关阅读:
    图标库
    AndroidManifest中注册application
    两个App之间的跳转 并传值
    Fresco加载显示gif图片
    弹出PopupWindow背景变暗的实现
    判断网络是否可用
    Java的安全性和可移植性
    DBUtils
    Observer
    IO
  • 原文地址:https://www.cnblogs.com/fjhh/p/5370572.html
Copyright © 2011-2022 走看看