上节课我们一起学习了使用ActiveMQ来发送面对面消息,这节课我们一起学习下如何接收消息。

我们在测试类中添加一个测试方法,如下图所示。

测试代码如下:

@Testpublic void testQueueConsumer() throws Exception{//1.创建一个连接工厂对象ConnectionFactory对象。需要指定mq服务的ip及端口号。注意参数brokerURL的开头是//tcp://而不是我们通常的http://,端口是61616而不是我们访问activemq后台管理页面所使用的8161ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.156.30:61616");//2.使用ConnectionFactory创建一个连接Connection对象Connection connection = connectionFactory.createConnection();//3.开启连接。调用Connection对象的start方法connection.start();//4.使用Connection对象创建一个Session对象//第一个参数是是否开启事务,一般不使用分布式事务,因为它特别消耗性能,而且顾客体验特别差,现在互联网的//做法是保证数据的最终一致(也就是允许暂时数据不一致),比如顾客下单购买东西,一旦订单生成完就立刻响应给用户//下单成功。至于下单后一系列的操作,比如通知会计记账、通知物流发货、商品数量同步等等都先不用管,只需要//发送一条消息到消息队列,消息队列来告知各模块进行相应的操作,一次告知不行就两次,直到完成所有相关操作为止,这//也就做到了数据的最终一致性。如果第一个参数为true,那么第二个参数将会被忽略掉。如果第一个参数为false,那么//第二个参数为消息的应答模式,常见的有手动和自动两种模式,我们一般使用自动模式。Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.使用Session对象创建一个Destination对象,两种形式queue、topic。现在我们使用queue//参数就是消息队列的名称Queue queue = session.createQueue("test-queue");//6.使用Session对象创建一个Consumer对象MessageConsumer consumer = session.createConsumer(queue);//7.向Consumer对象中设置一个MessageListener对象,用来接收消息consumer.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message message) {if(message instanceof TextMessage) {TextMessage textMessage = (TextMessage)message;try {String text = textMessage.getText();System.out.println(text);} catch (JMSException e) {e.printStackTrace();}}}});//8.程序等待接收用户结束操作//程序自己并不知道什么时候有消息,也不知道什么时候不再发送消息了,这就需要手动干预,//当我们想停止接收消息时,可以在控制台输入任意键,然后回车即可结束接收操作(也可以直接按回车)。System.in.read();//9.关闭资源consumer.close();session.close();connection.close();}

执行上面的测试方法,如下图所示,可以看到正确输出了我们上节课发送的消息。这时程序并没有结束(下图中红色运行标志)

我们再发送两条不同的消息,看看是不是能马上接收到新的消息,如下图所示,发现只要一发送消息,接收端便立刻会显示出发送的消息。

如果我们想结束接收消息,可以在Console控制台直接敲回车即可,如下图所示。

我们再来看下activemq的管理后台,点击"Queues",可以看到如下图所示界面。说明我们面对面发送消息是没问题的。

学习淘淘商城第五十七课(接收Queue消息)相关推荐

  1. 学习淘淘商城第八十七课(单点登录用户登录流程分析及用户登录Service层)

    我们先来看下登录流程图,如下图所示. 用户登录涉及到三个部分,第一部分是淘淘商城前台工程,第二部分是单点登录服务,第三部分是Redis服务.具体流程下图已经说的很明白了,我就不再啰嗦一遍了,相比于传统 ...

  2. 深入浅出CChart 每日一课——快乐高四第五十七课 新的起点,炫彩界面库之老树新芽

    CChart对多种DirectUI库具有良好的适配性,炫彩界面库也不例外.前面已经有两篇关于炫彩界面库的课程,分别是第17课"深入浅出CChart 每日一课--第十七课 时尚加潮流,Dire ...

  3. php透视图,第五十七课 利用透视尺绘制透视图-透视尺基本篇2-

    利用透视尺绘制透视图-透视尺基本篇2- 本节以2点透视的透视尺为例,简述基本的透视图的描画方法. 1.透视尺的操作 ------------------------------------------ ...

  4. 一个淘淘商城项目送给你,愿你有一个灿烂的前程!

    写在前面 今天是2020年6月23日,星期二,天气晴.2020年已过一半,回想一下,这真是一个多灾多难的年份啊!可生活依然要继续,活着的人依然要继续前行.这是没道理的事情. 好了,回到主题,说说写这篇 ...

  5. (转)学习淘淘商城第二十二课(KindEditor富文本编辑器的使用)

    http://blog.csdn.net/u012453843/article/details/70184155 上节课我们一起学习了怎样解决KindEditor富文本编辑器上传图片的浏览器兼容性问题 ...

  6. 学习淘淘商城第二课(搭建Maven工程)

    上节课我们一起学习了淘淘商城的架构,这节课我们一起学习如何搭建Maven工程,关于Maven的好处,网上有很多,这里就不啰嗦了. Maven常见的打包方式有:jar.war.pom pom工程一般都是 ...

  7. 学习淘淘商城第二十三课(添加商品的实现)

    上节课我们一起学习了富文本编辑器的使用,这节课我们一起学习下商品添加的实现. 在item-add.jsp当中,当点击提交按钮后,会触发submitForm方法,如下图所示. 在提交表单前需要校验输入的 ...

  8. 学习淘淘商城第二十四课(前台系统工程搭建)

    上节课我们一起学习了添加商品的实现,这节课我们学习搭建前台系统工程. 我们先来看一下淘淘商城的首页,如下图所示. 我们再来看看淘淘商城的系统架构图,我们目前只是完成了后台管理系统和商品服务,还有很多没 ...

  9. 学习淘淘商城第四十九课(搜索功能测试)

    经过前面几节的学习,我们把搜索相关代码写完了,这节我们一起测试下搜索功能. 首先我们要保证zookeeper.redis.image.solr服务都开启. 接着,我们把taotao-common工程重 ...

最新文章

  1. 基于OpenPose的人体姿态检测两个群众
  2. matlab风力机叶片仿真教程,我用matlab编写了一个风力机叶片的优化设计程序,有点问题 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  3. Centos7.2 基于LAMP框架部署Discuz论坛
  4. linux函数怎么判断文件已更改,Linux下使用md5sum查看文件及程序是否被修改
  5. SQL Server 2000 To SQL Server 2005
  6. 前沿观察 | SageDB:一个自学成才的数据库
  7. header的安全配置指南
  8. Android 四大组件 与 MVC 架构模式
  9. 力扣93. 复原 IP 地址(JavaScript)
  10. windows 防火墙疑难解答程序_Win8系统设置允许程序通过防火墙的方法
  11. 如何定义一个类对象并用next()的方法使用_python零基础必读--可迭代对象、迭代器与生成器...
  12. ASP.NET MVC和jQuery系列一:入门篇
  13. Android自定义输入车牌号键盘、车牌简称,数字 ,字母键盘
  14. 路由端口的限制与破解
  15. 基于SSM的企业人事管理系统
  16. Arithmetic Code 算术编码
  17. ei会议论文含金量高吗?
  18. Unity引擎光照烘焙
  19. 利用CSS设置文字的阴影效果
  20. JavaScrip笔记心得(持续更新)

热门文章

  1. 生活-就是每天撕一张饭票
  2. 实验05 状态图与活动图
  3. 华为云从入门到实战 | AI云开发ModelArts入门与WAF应用与部署
  4. 人脉经营全攻略:认识、经营与开发
  5. 【每天一个java设计模式(十八)】 - 观察者模式
  6. 【黑盒测试】场景法和错误推断法
  7. 微信小程序开发之向组件传值的三种方式
  8. Python+MATLAB处理气象站点数据
  9. windows杀死nginx进程
  10. HP电脑恢复系统(一键还原)