ActiveMQ實戰之 Queue點對點消息

jopen 12年前發布 | 76K 次閱讀 ActiveMQ 消息系統

對于此類消息,其實就是指使用JMS中的發P2P(點對點)消息模型的消息,下面是一個簡單的例子
消息發送者

package com.googlecode.garbagecan.jmsstudy.activemq.queue;

import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class Sender { public static void main(String[] args) throws JMSException { ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = connectionFactory.createConnection(); connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Destination destination = session.createQueue("myQueue");

    MessageProducer producer = session.createProducer(destination);
    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>消息接收者

package com.googlecode.garbagecan.jmsstudy.activemq.queue;

import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class Receiver { public static void main(String[] args) throws JMSException { ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = connectionFactory.createConnection(); connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Destination destination = session.createQueue("myQueue");
    MessageConsumer consumer = session.createConsumer(destination);
    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>分別運行兩個類,就可以看到Sender發布的消息,Receiver都可以接受到。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!