蓝因子 JMS 消息确认和事务

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

上图中可能出现的异常

1.1.1. 发送消息失败

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

1.1.2. 持久化失败

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

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

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

1.2 消息服务器和消费者

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

上图中可能出现的异常

1.2.1. 接收消息失败

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

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

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

1.2.3. 删除持久化失败

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

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

猜你喜欢

网红面包品牌被曝致多人发烧腹泻 食品安全引质疑(网红面包品牌有哪些)

有一个网红面包品牌,经常可以看到店门口大排长龙。这个品牌就是BUTTERFUL&CREAMOROUS,又名“黄油与面包”。然而最近,广州天环店有多人曝光在食用几款面包后出现了发烧、腹泻、呕吐等症状

网红面包品牌被曝致多人发烧腹泻 食品安全引质疑(网红面包品牌有哪些)

电动自行车充电桩科普指南:安全充电的核心知识(电动自行车充电站)

🔒 安全机制:充电桩的“生命线” 环境检查:避免暴雨、高温(>35℃)时段充电,防止电路短路或电池过热;接口维护:定期清理充电口灰尘水渍,确保接触良好;异常响应:若充电枪温度明显烫手(>50℃)或功率频繁…

电动自行车充电桩科普指南:安全充电的核心知识(电动自行车充电站)

这双尖头细跟凉鞋,谁穿谁好看,必须赶紧分享给大家(雅马哈apx700)

我试过搭碎花裙,清新甜美,像从韩剧里走出来的女主角;配西装裤,职场丽人既视感,气场直接两米八;就连简单的牛仔裤,穿上它也能变身随性街头酷girl,各种风格切换自如,就问还有谁!走在街上,别人瞅见这扣,心里指定…

这双尖头细跟凉鞋,谁穿谁好看,必须赶紧分享给大家(雅马哈apx700)

为期三个月,成都市场监管“蹲点服务”进产业园区,破题行业发展瓶颈(三个月期限已到)

转机始于成都市场监管局的“立园满园”蹲点服务行动,专家团队走进厚普清洁能源,精准捕捉到这一行业痛点。据悉,这些企业园区的破题之路,正是成都市场监管系统以企业痛点“小切口”撬动行业“大作为”的缩影。 成都市…

为期三个月,成都市场监管“蹲点服务”进产业园区,破题行业发展瓶颈(三个月期限已到)

吴宣仪这“魔鬼身材”,谁看了不说一句绝!

还有就是,别被“身材焦虑”压垮,吴宣仪的身材是努力的成果,但不是“唯一标准”,普通人也有普通人的美,健康、自信就是最美的,咱要学她的自律,更要爱自己的独特!美不只有一种样子,有人喜欢丰满性感,有人偏爱纤细精致…

吴宣仪这“魔鬼身材”,谁看了不说一句绝!