蓝因子 JMS 消息确认和事务

保证消息传送

保证消息传送有 3 个主要部分:消息自主性,存储并转发以及底层消息确认,下面具体看一下这些概念;

1. 消息自主性

消息是自包含的自主性实体,在设计分布式消息应用程序时,要将此作为头条法则;当 JMS 客户端发送一条消息时,它就完成了它的所有工作,一旦该数据被传送出去,它就被认为是” 安全的”,

而且不在受该客户端的控制,类似 JDBC 客户端和数据库直接的约定;

2. 保存并转发消息传送

可以将消息标记为持久化的,这样 JMS 『服务器』负责保存消息,以确保在提供者发生故障或消费客户端发生故障的情况下,消息可以恢复正常;消息可以集中存储或本地存储;

3. 消息确认

JMS 规定了多种确认模式,这些确认是保证消息传送的关键部分;『服务器』确认从 JMS 生产者接受消息,而 JMS 消费者确认从『服务器』接受消息;确认协议允许 JMS 提供者监测一条消息的整个过程,

以便了解是否成功的生产和消费了该消息;

消息确认

消息确认协议是保证消息传送的关键所在,JMS 主要定义了三种确认模式:auto_acknowledge,dups_ok_acknowledge 以及 client_acknowledge;

1.auto_acknowledge

auto_acknowledge 是 JMS 提供的自动确认模式,下面分别从生产者和消费者角度来分析,以下使用 ActiveMQ 来作为消息『服务器』;

1.1 生产者和消息『服务器』

生产者调用 send () 或者 publish () 方法发送消息,同时进行阻塞,直到从消息『服务器』接收到一个确认为止;底层确认对客户端编程模型来说是不可见的,如果在操作期间发生故障,就会抛出一个异常,同时认为该消息没有被传送;消息『服务器』接收到消息,如果是持久性消息就会持久化到磁盘,如果是非持久性消息就会存入内存,然后再通知生产者已经接收到消息;

今日霍州(www.jrhz.info)©️

上图中可能出现的异常

1.1.1. 发送消息失败

可能由于网络原因导致发送消息失败,『服务器』没有感知,需要生产者做好异常检测或者重发机制;

1.1.2. 持久化失败

生产者成功发送消息给『服务器』,『服务器』在持久化时失败,『服务器』会在通知的时候,把错误信息返回给生产者,需要生产者做好异常检测;

1.1.3. 『服务器』通知生产者失败

成功接收消息和持久化,在通知生产者时,出现网络异常导致失败,『服务器』会将此消息删除,生产者会从阻塞中返回并抛出异常;

1.2 消息『服务器』和消费者

消费者获取到消息之后,需要向『服务器』发送确认信息,如果『服务器』没有接收到确认信息,会认为该消息未被传送,会试图重新传送;如果接收到确认消息,此消息将会从持久化存储器中删除;

今日霍州(www.jrhz.info)©️

上图中可能出现的异常

1.2.1. 接收消息失败

对于 Queue 模型来说,是主动拉取消息,在没有成功拉取数据的情况下,『服务器』自然不会删除数据;对于 Topic 模型来说,消息『服务器』会推送给每个消费者一个消息的副本,如果是持久订阅者,一直到消息『服务器』接收到所有消息预定接收者的确认时,才会认为完成传送;如果是非持久订阅,就不会关心某一个接收者是否接收到消息;

1.2.2. 消费者通知『服务器』失败

消费者成功接收到消息,但是在处理完之后,通知『服务器』失败,导致『服务器』没有被删除,消息会被重发,消费者要做好幂等性处理;

1.2.3. 删除持久化失败

消费者成功接收到消息,『服务器』成功接收通知信息,在删除持久化数据时失败,导致数据没有被删除,消息会再次被消费,消费者要做好幂等性处理;

今日霍州(www.jrhz.info)©️

特别声明:[蓝因子 JMS 消息确认和事务] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

枪火灼心的绝境抉择,90 年代硬核犯罪的人性寓言(小说枪火)

这些羁绊交织在一起,让每个角色的选择都充满了必然性与悲剧性,也让 “人性” 成为比劫案本身更值得探讨的主题。武小宝的堕落轨迹,是对“贫穷与压迫是否会催生罪恶” 的深刻探讨 —— 他并非天生邪恶,而是在生存的…

枪火灼心的绝境抉择,90 年代硬核犯罪的人性寓言(小说枪火)

面相又变了!49岁赵薇广东吃饭,又老又瘦没架子,却再无回头路走(面相又变了!50岁赵薇近照曝光能否重拾星光?)

可随着事业起飞,两人聚少离多,最终以男方动摇、转向女星杨恭如而告终,这是她第一次品尝到事业与感情的冲突。 这并非简单的家暴,而是野心的火焰,第一次在私人领域里烧错了地方,它试图控制他人,最终却灼伤了自己,正…

面相又变了!49岁赵薇广东吃饭,又老又瘦没架子,却再无回头路走(面相又变了!50岁赵薇近照曝光能否重拾星光?)

38岁『张馨予』晒最新冬照,露肩红唇巴掌脸回归,状态绝了吗(『张馨予』2018)

再看这组近照,皮肤状态稳,『妆容』拿捏住尺度,衣服简洁,五官承担主角🎭️,镜头、光线、表情、发量、肩颈、锁骨、腰臀、比例、氛围,一环扣一环,质感往上走,像把冬日浪漫捧在手心里 38岁了,大家也都知道,她保养做得细,…

38岁『张馨予』晒最新冬照,露肩红唇巴掌脸回归,状态绝了吗(『张馨予』2018)

赵昭仪变身“昭仪”尽显国泰民安气质,一袭国风长裙👗尽显端庄美好

这位女『明星』️一袭国风造型,造型大气磅礴,被网友调侃,:“从名字就注定了要演娘娘!”赵昭仪身着一袭红蓝撞色唐装礼服,一身刺绣装饰繁复华贵,内搭一件金色刺绣抹胸长裙👗,全身色泽亮丽,让人眼前一亮! 赵昭仪的这套国风造…

赵昭仪变身“昭仪”尽显国泰民安气质,一袭国风长裙👗尽显端庄美好

【地质大学】天然托帕石手链火彩爆闪,该如何选择最佳款式?(地质学院)

【地质大学】推出的天然托帕石手链,以其独特的火彩和精湛工艺深受喜爱。如何挑选适合自己的手链?本文为你全面解析,从材质到设计,从预算到保养。了解2025年的时尚趋势,助你选出手链的关键指标。 无论你是追求品质还是时尚,这篇文章都将带你快速找到

【地质大学】天然托帕石手链火彩爆闪,该如何选择最佳款式?(地质学院)