关闭

JMS&MQ,从入门到精通(五)

标签: jmsjms消息互发mq消息机制mq消息发送jms监听
629人阅读 评论(1) 收藏 举报
分类:
上篇我们介绍了,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的一些细节
0
0
查看评论

ORACLE从入门到精通 明日科技编著 清华大学出版社

http://pan.baidu.com/s/1gePoRAV
  • ggkmskj
  • ggkmskj
  • 2017-06-07 17:04
  • 1139

SQL SERVER-2008从入门到精通pdf

下载地址:网盘下载 内容要点 编辑 SQL Server 2008是Windows Server的最新版本,它推出了许多新的特性和关键性的改进,是至今为止最强大和最全面的SQL Server版本。本书详细介绍SQL Server 2008中的重要新增功能和增强特性。 ...
  • cf406061841
  • cf406061841
  • 2017-06-04 23:24
  • 1088

C#从入门到精通学习笔记——(1)

一、概述 1.C#语言特性: 2.C#与.net框架的关系: 3.VS应用
  • Memory_sand
  • Memory_sand
  • 2017-04-04 16:26
  • 325

《Unity4.x从入门到精通》随书光盘下载

http://game.ceeger.com/forum/read.php?tid=14970&fid=7
  • ldghd
  • ldghd
  • 2014-01-25 14:33
  • 4033

MyBatis从入门到精通__刘增辉(著)_ 电子工业出版社.pdf 免费下载

下载地址: MyBatis从入门到精通__刘增辉(著)_ 电子工业出版社.pdf
  • jiongyi1
  • jiongyi1
  • 2018-01-25 19:57
  • 111

Java Web从入门到精通 谁买谁后悔

Java Web从入门到精通:8小时多媒体教学视频(视频实战版)作 者: 常倬林 著 丛 书 名: 出 版 社: 机械工业出版社 ISBN:9787111324188 出版时间:2011-01-01 版 次:1 页 数:571 装 帧:平装 开 本:16开  这是书的视频太搞笑,作者,出版...
  • snihcel
  • snihcel
  • 2011-05-18 13:32
  • 2421

WF从入门到精通系列

WF从入门到精通系列
  • tigerzx
  • tigerzx
  • 2017-03-11 12:47
  • 152

HTML、CSS、JavaScript网页制作从入门到精通

这大概是我第一次写博客吧,自从大一开始写代码,至今也有5年的光景了,很遗憾并没有养成写博客的习惯,一方面因为我平时很少有阶段性的总结,另一面也确实不知道该分享些什么。归根结底还是功夫不到家,没有一些让自己骄傲的阶段性成果。既然要写,还是决定从读书笔记开始,记下自己学习的心得,一方面可以分享给大家,另...
  • luchengbing0120
  • luchengbing0120
  • 2017-09-19 19:42
  • 479

asp.net从入门到精通第三版光盘全部内容

asp.net从入门到精通第三版光盘
  • qq_22973115
  • qq_22973115
  • 2016-10-03 18:05
  • 2325

SpringBoot从入门到精通

原文链接如下: http://blog.didispace.com/categories/Spring-Boot/page/4/
  • java1993666
  • java1993666
  • 2017-08-28 19:01
  • 969
    个人资料
    • 访问:296378次
    • 积分:4219
    • 等级:
    • 排名:第8603名
    • 原创:148篇
    • 转载:8篇
    • 译文:0篇
    • 评论:56条
    博客专栏