大型资讯门户网站怎么做排名,华为应用市场下载安装,石家庄网络公司哪家正规,广州网络科技有限公司有哪些rabbitmq消息丢失解决 rocketMq解决消息丢失 RocketMQ事务消息概要
RocketMQ事务消息是指应用本地事务和发送消息操作可以被定义到全局事务中#xff0c;要么同时成功#xff0c;要么同时失败。 采用了2PC#xff08;两阶段提交#xff09; 补偿机制#xff08;事务状态回…rabbitmq消息丢失解决 rocketMq解决消息丢失 RocketMQ事务消息概要
RocketMQ事务消息是指应用本地事务和发送消息操作可以被定义到全局事务中要么同时成功要么同时失败。 采用了2PC两阶段提交 补偿机制事务状态回查的思想来实现了提交事务消息同时增加一个补偿逻辑来处理二阶段超时或者失败的消息如下图所示。 RocketMQ 事务消息的工作流程 RocketMQ 的事务消息是指在消息发送方发送消息后需要经过两阶段提交来确保消息的可靠性传递和处理。 undefined 发送消息 ○ 发送方将消息发送到 RocketMQ 服务端但消息状态为“Prepared”。 undefined 执行本地事务 ○ RocketMQ 调用发送方应用程序注册的本地事务执行器TransactionListener来执行本地事务。 ○ 本地事务执行成功后应用程序根据事务执行结果返回 COMMIT 状态如果执行失败则返回 ROLLBACK 状态。 undefined 确认消息状态 ○ 根据本地事务执行结果RocketMQ 服务端将消息状态更新为 COMMIT 或 ROLLBACK。 ○ 如果发送方应用程序在规定时间内未提交事务执行结果RocketMQ 服务端会执行回查机制。 undefined 回查机制 ○ RocketMQ 定期会检查处于“Prepared”状态的消息向发送方应用程序发起回查请求。 ○ 发送方应用程序接收到回查请求后再次执行本地事务并根据执行结果返回 COMMIT 或 ROLLBACK 状态。 通过以上流程RocketMQ 的事务消息能够保证在消息发送和消费过程中的事务一致性和可靠性确保消息在各个环节的正确处理。事务消息适用于需要确保消息生产和消费的原子性操作场景 消息重复的话有业务自行保证比如已被消费过了订单的状态就变了
消息的顺序性 消息生产端和消费端都注册队列选择器