NOTE
2.12 RocketMQ事务消息
1. RocketMQ事务消息是什么 - 传统的本地消息表需要依赖数据库的消息表 - 而RocketMQ事务则是对本地消息表的一个封装,将本地消息表移动到了MQ内部,解决 Producer 端的消息发送与本地事务执行的原子性问题 2. RocketMQ事务消息原理 1. 服务A发送half mess
这是历史学习笔记,可能存在过时或不完整的理解。
1. RocketMQ事务消息是什么
- 传统的本地消息表需要依赖数据库的消息表
- 而RocketMQ事务则是对本地消息表的一个封装,将本地消息表移动到了MQ内部,解决 Producer 端的消息发送与本地事务执行的原子性问题
2. RocketMQ事务消息原理

- 服务A发送half message到MQ
- 服务A收到MQ对half message的确认消息
- 服务A执行本地事务
- 服务A根据本地事务的执行结果发送commit/rollbak message给MQ
- 如果第2步的确认消息丢失或者第3步的本地事务执行超时,MQ会再次发送half message的确认消息给服务A
- 服务A检查本地事务状态
- 服务A根据本地事务状态发送commit/rollbak message给MQ
- MQ收到commit消息会发送消息给服务B,如果收到的是rollback消息那么丢弃