JMS中的DeliveryMode和DurableSubscriber以及在activeMQ中的小BUG

DeliveryMode

DeliveryMode.PERSISTENT   是指服务器中  
message 在queue里面只要没被消费掉 或者 在topic上仍然有至少一个 DurableSubscriber 没有收到 
那么message就是仍然存在的,重启仍然存在。
producer发送消息时 消息的DeliveryMode属性默认的是NON_PERSISTENT的,PERSISTENT会占内存 影响性能。




DurableSubscriber
持久订阅者。
只要这个持久订阅者一旦被创建,监听了一个topic开始。从这个时间点开始,之后的publish的message都不会遗漏
(除非Broker ,JMS provider重启,而且message是NON_PERSISTENT这种情况message会丢失)其它情况包括,
期间这个subscribe停止了一会。在它回来之后消息任然在,任然会接收到。
topic中的message的销毁条件是,这个topic上的所有的这个message时间点之前的DurableSubscriber全部都接收到才会销毁。


创建一个DurableSubscriber的两个前提条件是
connection.setClientID("***");
session.createDurableSubscriber(topic,"SubscriberName");


1,connection的clientID
2,SubscriberName    (在activeMQ里面遇到的小BUG是subscriberName和topicName不能重复,不然会出现不可预料的错误,比如接收消息无响应


这两个属性帮助 JMS中间件 来确定 你这个 DurableSubscriber 再次连接上来的时候,
对应于我JMS中间件上记录的哪个DurableSubscriber


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值