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();
    } }
    }
    此实例说明:每一个消息都会被所有消费者消费。

  • 相关阅读:
    线程之同步函数
    selenium破解极验验证
    数据结构--树
    数据结构--线性表
    数据结构--栈
    数据结构--队列
    代理的初步理解
    javamail+ical4j发送会议提醒
    阿里云学习之IOT物联网套件(客户端与服务端的后台数据传输)
    位图数据结构原理分析总结
  • 原文地址:https://www.cnblogs.com/fjhh/p/5370572.html
Copyright © 2011-2022 走看看