RocketMQ的事务消息处理

处理流程

  1. producer 发送half message到broker中;
  2. broker接收到half message后给producer发送成功的发聩,这时,half message才算真正生成完了;
  3. producer执行本地事务;
  4. producer根据第3步得到执行本地事务的结果,向MQ进行二次确认(到底是commit还是roll back)。如果是commit就将这个half message变为消费者可以消费的消息,此时消费者接收到这条half message。如果是roll back,那么MQ就将这条half message丢弃掉;
  5. 如果MQ在第4步的时候,拿不到producer执行完本地事务的结果,那么告知producer要进行回查;
  6. producer 查询执行本地事务结果;
  7. producer根据第6步返回的结果再次执行第4步;

猜你喜欢

转载自www.cnblogs.com/KevinStark/p/12525470.html