JavaEE5学习笔记03-JMS介绍与使用---3

发布/订阅Pub-Sub消息

Pub-Sub有点1对多的意思,一个消息生产者,多个消息消费者共同接收。首先我们在JBoss中配置一个消息主题,生产者实际上是对此消息主题发送消息的,消息消费者实际上也是对此主题的消息进行接收的。

 

在此我们配置了一个名字叫做jbossJMSTopic的消息主题。

因为JMS1.1的标准在代码上已经完全屏蔽了PTPPub-Sub的差异性,所以我们上面的代码可以修改一下重复利用

消息消费者修改目的

Destination dest = (Destination) context.lookup("jbossJMSTopic");

消息生产者修改目的

Destination dest = (Destination) context.lookup("jbossJMSTopic");

其他代码不同变更

下面我们为了查看消息群发的效果,执行2遍消息消费者目的的代码,之后执行1遍消息生产者,看到的效果如下:

2个消息消费者控制台

其中一个消费者

textMessagedelegator->JBossMessage[21259541532164102]:PERSISTENT, deliveryId=0

消息内容hello 速速

另一个消费者

textMessagedelegator->JBossMessage[21259541532164102]:PERSISTENT, deliveryId=0

消息内容hello 速速

这证明了2个消费者都接收到了此消息。

当然,异步消费也和上面代码一样,就是替换一个目的地址就可以,底层的实现为开发者屏蔽了这些不同JMS信息模式的差异。

1.       JMS消息常用的属性配置

JMS的消息再发送之前还可以设置一些消息属性

1.传递方式:

持久化保存消息

sender.setDeliveryMode(DeliveryMode.PERSISTENT);

不用持久化保存消息

sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

2.消息的有效期时间

sender.setTimeToLive(2000);

代表此消息2秒后就作废了,即使是将消息持久化到一个物理空间上,2秒钟后也会删除。如果不设置,默认是永远不会过期的。

3.消息的优先级

sender.setPriority(9);

将此消息设置成优先级最大的9,相当于500里加急文书!。默认的优先级是4

当然之前所有做的一切属性设置,最后如果调用了MessageProducer.send(消息实体,存储模式 , 优先级, 有效时间);这种最终、比较全面的方法所覆盖。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值