轮训队列 job java_[Java教程]第3.3 案例2: 工作队列 job queue

[Java教程]第3.3 案例2: 工作队列 job queue

0 2015-09-18 16:00:05

第2个案例就是工作队列,典型的点对点的消息,一个Producer发送一个工作消息到队列去,具有Listener类的Consumer能够从工作队列中获得一个工作情况的消息,这个消息被这个消费者消费掉之后,就不存在了,隶属于一点对一点模式,这不同于3.2案例中的股票期货那样可以把一个价格发布到多个订阅了的消费者身上。

还有一点不同:Producer使用消息生产者发送了100个消息进入队列后,就马上关闭连接了,这一点同3.2一样。此后,这10个消息仍旧存在于JMS服务器消息域中,随后的消费者什么时候运行就什么时候来消费掉这些消息,不用一直在线等,该队列中的消息也不会逝去。这也是不同于3.2案例的地方。

启动步骤:

1、        启动ActiveMQ。

2、        首先要运行的是Producer类。

3、        在运行Consumer类。

需要说明的一点是:

1、这次谁先启动都无所谓,因为在消息会在队列里暂时存储一段时间,谁先启动都无关紧要,这一点我已经证实多次了,而且,消费者所获得的消费消息也会完整无缺,一个也不缺。

2、关于“点对点”模式的说明,具体来讲应该是“消息点对点”。如果理解为一个生产者和一个消费者,那这样是理解错误的,应该是一个生产者发出消息只能有被一个消费者所消费后,其他的消费者是得不到的,因为该条消息是一次性的,进入队列后在从队列中,在队列中什么也没有发生变化,而且队列形象的象个直通子的容器,只是让这条消息在里面呆了一阵子而已,无它。

这是我理解下的消息点对点模式图:

bc91bb04e6e9c61e24c974e4440db8f2.gif

附件:程序的运行结果:

bc91bb04e6e9c61e24c974e4440db8f2.gif

bc91bb04e6e9c61e24c974e4440db8f2.gif

本文网址:http://www.shaoqun.com/a/143620.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值