| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
13年前发布

ActiveMQ实战之 Topic发布订阅消息

     <p>对于此类消息,其实就是指使用JMS中的发布订阅消息模型的消息,下面是一个简单的例子</p>    <p>消息发布者</p>    <pre class="brush:java; toolbar: true; auto-links: false;">package com.googlecode.garbagecan.jmsstudy.activemq.topic;  import org.apache.activemq.ActiveMQConnectionFactory;  import javax.jms.*;  public class TopicPublisher {  public static void main(String[] args) throws JMSException {   ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");   Connection connection = factory.createConnection();   connection.start();      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);   Topic topic = session.createTopic("myTopic.messages");    MessageProducer producer = session.createProducer(topic);   producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);    while(true) {    TextMessage message = session.createTextMessage();    message.setText("message_" + System.currentTimeMillis());    producer.send(message);    System.out.println("Sent message: " + message.getText());     try {     Thread.sleep(1000);    } catch (InterruptedException e) {     e.printStackTrace();    }   }  //  session.close(); //  connection.stop(); //  connection.close();  } }</pre>消息订阅者(消息消费者)    <pre class="brush:java; toolbar: true; auto-links: false;">package com.googlecode.garbagecan.jmsstudy.activemq.topic;  import org.apache.activemq.ActiveMQConnectionFactory;  import javax.jms.*;  public class TopicSubscriber {  public static void main(String[] args) throws JMSException {   ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");   Connection connection = factory.createConnection();   connection.start();      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);   Topic topic = session.createTopic("myTopic.messages");    MessageConsumer consumer = session.createConsumer(topic);   consumer.setMessageListener(new MessageListener() {    public void onMessage(Message message) {     TextMessage tm = (TextMessage) message;     try {      System.out.println("Received message: " + tm.getText());     } catch (JMSException e) {      e.printStackTrace();     }    }   }); //  session.close(); //  connection.stop(); //  connection.close();  } }</pre>分别运行两个类,就可以看到Publisher发布的类,Subscriber都可以接受到。    <p></p>     
 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1328079945062.html
ActiveMQ 消息系统