对于此类消息,其实就是指使用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();
- }
- }
消息接收者
- 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();
- }
- }
分别运行两个类,就可以看到Sender发布的消息,Receiver都可以接受到。