一起来学activeMQ 3.JMS 的可靠性机制

JMS的可靠机制主要表现在 消息的消费!

但是我希望从消息的生产开始说起!

生产者

消息的生产发送可靠性通过session来维持

再创建session时我们可以选择事物或非事物
1.值得注意的是,单我们处于生产者时,无论我们选择事物,还是非事物,另一个参数(acknowledgeMode)都毫无意义!
2.当我们选择事物的时候, acknowledgeMode没有意义可以下瞎写,
此时当我们session.commit时,在这个时间点之前的通过该session存储在内存的消息将全部发送
3.当我们选择非事物时候,acknowledgeMode必须是Session.xxxx中的值,但是没有意义,因为无论我们是否确认,每次send都会发送消息!
4.理解

  1. 当我们选择事物时,效率相对提高,但是这种时候,我们rollback的代价也相对提高,所以我们可以每发送N条,commit一次,这样对内存空间的要求会降低,但是一旦出现需要exception,那么我们无法全部rollback!
  2. 当我们选择非事物是,不存在rollback的情况,发送一条就是一条,当然发送的效率相对较低,需要多次连接数据库

消费者

消费者保持事物也同样是session的层面开始!

再创建session时我们可以选择事物或非事物
1.如果支持事物的话

  1. acknowledgeMode无效
  2. 当我们session.commit时,自动确认已经消费的信息

2.如果不支持事物

  1. acknowledgeMode= Session.AUTO_ACKNOWLEDGE,
    当客户成功的从 receive 方法返回的时候或者从 MessageListener.onMessage 方法成功返回的时候,会话自动确认
    客户收到的消息
  2. acknowledgeMode= Session.AUTO_ACKNOWLEDGE
    Session.CLIENT_ACKNOWLEDGE。客户通过消息的 acknowledge 方法确认消 息。需要注意的是,在这种模式中,确认是在会话层上进行:确认一个被 消费的消息将自动确认所有已被会话消费的消息。例如,如果一个消息消费者消费了 10 个消息,然后确认第 5 个消息,那么所有 10 个消息都被确
    认。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值