首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ActiveMQ实战之 Queue点对点讯息【转】

2012-12-28 
ActiveMQ实战之 Queue点对点消息【转】对于此类消息,其实就是指使用JMS中的发P2P(点对点)消息模型的消息,下

ActiveMQ实战之 Queue点对点消息【转】

对于此类消息,其实就是指使用JMS中的发P2P(点对点)消息模型的消息,下面是一个简单的例子
消息发送者

view plaincopy to clipboardprint?
  1. package?com.googlecode.garbagecan.jmsstudy.activemq.queue;????
  2. ??import?org.apache.activemq.ActiveMQConnection;??
  3. import?org.apache.activemq.ActiveMQConnectionFactory;????
  4. import?javax.jms.*;????
  5. public?class?Sender?{??????public?static?void?main(String[]?args)?throws?JMSException?{??
  6. ????????ConnectionFactory?connectionFactory?=?new?ActiveMQConnectionFactory("tcp://localhost:61616");??????????Connection?connection?=?connectionFactory.createConnection();??
  7. ????????connection.start();????
  8. ????????Session?session?=?connection.createSession(false,?Session.AUTO_ACKNOWLEDGE);??????????Destination?destination?=?session.createQueue("myQueue");??
  9. ??????????????????MessageProducer?producer?=?session.createProducer(destination);??
  10. ????????producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);????
  11. ????????while(true)?{??????????????TextMessage?message?=?session.createTextMessage();??
  12. ????????????message.setText("message_"?+?System.currentTimeMillis());??????????????producer.send(message);??
  13. ????????????System.out.println("Sent?message:?"?+?message.getText());????
  14. ????????????try?{??????????????????Thread.sleep(1000);??
  15. ????????????}?catch?(InterruptedException?e)?{??????????????????e.printStackTrace();??
  16. ????????????}??????????}??
  17. ??//??????session.close();??
  18. //??????connection.stop();??//??????connection.close();??
  19. ????}??}??

消息接收者

view plaincopy to clipboardprint?
  1. package?com.googlecode.garbagecan.jmsstudy.activemq.queue;????
  2. import?org.apache.activemq.ActiveMQConnection;??import?org.apache.activemq.ActiveMQConnectionFactory;??
  3. ??import?javax.jms.*;??
  4. ??public?class?Receiver?{??
  5. ????public?static?void?main(String[]?args)?throws?JMSException?{??????????ConnectionFactory?connectionFactory?=?new?ActiveMQConnectionFactory("tcp://localhost:61616");??
  6. ????????Connection?connection?=?connectionFactory.createConnection();??????????connection.start();??
  7. ??????????Session?session?=?connection.createSession(false,?Session.AUTO_ACKNOWLEDGE);??
  8. ????????Destination?destination?=?session.createQueue("myQueue");??????????MessageConsumer?consumer?=?session.createConsumer(destination);??
  9. ????????consumer.setMessageListener(new?MessageListener()?{??????????????public?void?onMessage(Message?message)?{??
  10. ????????????????TextMessage?tm?=?(TextMessage)?message;??????????????????try?{??
  11. ????????????????????System.out.println("Received?message:?"?+?tm.getText());??????????????????}?catch?(JMSException?e)?{??
  12. ????????????????????e.printStackTrace();??????????????????}??
  13. ????????????}??????????});??
  14. ??????????//??????session.close();??
  15. //??????connection.stop();??//??????connection.close();??
  16. ????}??}??

分别运行两个类,就可以看到Sender发布的消息,Receiver都可以接受到。

热点排行