参考:https://rocketmq.apache.org/zh/docs/featureBehavior/04transactionmessage/
简单讲,业务上的事务包含(数据库事务 + 消息事务),原先生产者只能控制数据库事务的提交或回滚,RocketMQ 使用消息确认的机制将这两者进行了关联,大致代码执行逻辑为:
- 生产者设置消息回查接口(供 mq 查询事务是否完成)
- 生产者先发送半消息
- 执行数据库事务
- 本地事务提交
- 提交消息事务
- 处理 mq 回查消息,返回本地事务结果
参考:https://rocketmq.apache.org/zh/docs/featureBehavior/04transactionmessage/
简单讲,业务上的事务包含(数据库事务 + 消息事务),原先生产者只能控制数据库事务的提交或回滚,RocketMQ 使用消息确认的机制将这两者进行了关联,大致代码执行逻辑为: