JMS&MQ,从入门到精通(五)
2017-04-28 12:06
330 查看
上篇我们介绍了,jms实现消息持久化的案例,本篇我们来介绍一个稍微复杂的场景
场景介绍
创建两个Queue,发送者给一个Queue发送,接收者接收到消息之后给另一个Queue回复一个Message,前一个发送者进行接受处理
实现思路
1.创建一个连接 2.创建两个queue,sendQueue,replyQueue 3.给队列sendQueue发消息,监听这处理从replyQueue回复消息给发送者
一个简单的实例
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost"); Connection connection = factory.createConnection(); connection.start(); //消息发送到这个Queue Queue queue = new ActiveMQQueue("sendQueue"); //消息回复到这个Queue Queue replyQueue = new ActiveMQQueue("replyQueue"); final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //创建一个消息,并设置它的JMSReplyTo为replyQueue。 Message message = session.createTextMessage("Andy"); message.setJMSReplyTo(replyQueue); MessageProducer producer = session.createProducer(queue); producer.send(message); System.out.println("send message Andy finish...."); //消息的接收者 MessageConsumer comsumer = session.createConsumer(queue); comsumer.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { //创建一个新的MessageProducer来发送一个回复消息。 MessageProducer producer = session.createProducer(m.getJMSReplyTo()); producer.send(session.createTextMessage("Hello " + ((TextMessage) m).getText())); System.out.println("producer 接收到消息后,回复消息完毕"); } catch (JMSException e1) { e1.printStackTrace(); } } }); //这个接收者用来接收回复的消息 MessageConsumer comsumer2 = session.createConsumer(replyQueue); comsumer2.setMessageListener(new MessageListener(){ public void onMessage(Message m) { try { System.out.println("接受到producer回复的消息:"+((TextMessage) m).getText()); } catch (JMSException e) { e.printStackTrace(); } } }); //首先消息生产者发送一个消息,内容为“Andy”, 然后消费者收到这个消息之后根据消息的JMSReplyTo, // 回复一个消息,内容为“Hello Andy‘。 最后在回复的Queue上创建一个接收回复消息的消费者,它输出所回复的内容。
我们来看一下运行结果:
下一篇我们介绍一下,Queue的一些细节
相关文章推荐
- JMS&MQ,从入门到精通(四)
- JMS&MQ,从入门到精通(二)
- JMS&MQ,从入门到精通(六)
- JMS&MQ,从入门到精通(三)
- JMS&MQ,从入门到精通(一)
- JMS&MQ,从入门到精通(八)
- JMS&MQ,从入门到精通(七)
- JMS&MQ系列之简单示例
- G7从入门到精通 =>(新手实践成功 HBOOT-0.93.0001 )
- JMS&MQ系列之普通Java程序中加载配置
- JMS&MQ系统之Spring中嵌入ActiveMQ
- JMS&MQ系列之JMS的请求和回应
- JMS&MQ系列之简单JMS应用程序编写步骤
- MQ入门总结(二)JMS
- lucene&solr从入门到精通-----创建索引,写到索引库
- Spring.NET & NHibernate从入门到精通
- 分享一个两年前写的JMS&ActiveMQ入门的ppt
- JMS&MQ系列之消息存储方式
- JMS&MQ系列之JMS概述
- MQ入门总结(二)JMS