notesArea/消息队列/RocketMQ 如何实现分布式消息事务.md

RocketMQ 如何实现分布式消息事务

  • Producer 向 Broker 发送半消息
  • Producer 收到半消息发送成功的响应。此时消息是“不可投递”状态,无法被消费端消费
  • Producer 处理本地事务,并根据事务是否成功执行向 Broker 发送 Commit 或 Rollback 指令
  • 如果 Broker 收到 Commit 指令,则将半消息标记为正常消息,此时消费者可以消费。如果 Broker 收到 Rollback 指令,则将半消息丢弃
  • 如果 Broker 迟迟收不到 Producer 的二次确认,则会主动通过 Producer 查询半消息的执行情况
大纲
文件