本文详细解析 RocketMQ 事务消息的实现原理、三阶段流程、回查机制,以及生产环境中需要关注的关键实践点,帮助你在分布式系统中实现高性能的最终一致性。
一、核心思想:最终一致性
RocketMQ 事务消息并不追求强一致性,而是通过 “两阶段提交 + 事务状态回查” 机制,保证分布式系统的数据最终一致性。 核心思想是:将分布式事务拆解为两个独立的、本地顺序执行的操作。
二、事务消息的生命周期与核心参与者
- 生产者(Producer):发送事务消息的一方。
Broker:RocketMQ 服务器,负责存储和转发消息。
- 半消息(Half Message):事务消息的第一阶段形态,对消费者不可见。
- 消息回查(Transaction Check):Broker 主动向生产者确认事务状态的机制。
消费者(Consumer):最终消费消息的一方。
三、RocketMQ 事务消息三阶段流程
阶段解析
1. 发送半消息(Prepare Phase)
- 生产者发送半消息到
RMQ_SYS_TRANS_HALF_TOPIC,消费者不可见。 - Broker 持久化半消息并返回发送成功响应