ActiveMQ实战之 Queue点对点消息

jopen 13年前
     对于此类消息,其实就是指使用JMS中的发P2P(点对点)消息模型的消息,下面是一个简单的例子    <br /> 消息发送者    <pre class="brush:java; toolbar: true; auto-links: false;">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>消息接收者    <pre class="brush:java; toolbar: true; auto-links: false;">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都可以接受到。