RocketMQ事务消息的实现原理

事务消息执行流程

我们先来看一下RocketMQ的执行流程


RocketMQ事务消息的实现原理


首先消息发送方将事务消息发送到Broker,收到Broker的回调后,提交本地事务

正常流程

本地事务提交成功,则消息发送方Commit,然后消息接收方便可以接收到MQ消息

异常流程

①本地事务提交失败:消息发送方rollback消息,Broker直接丢弃消息,消费方不可接收消息

②消息发送方Commit、Rollback失败:Broker回调消息发送方,然后消息发送方回调本地事务状态,确认是Commit还是Rollback消息,最终确认或是丢弃消息

实现原理

如何实现一阶段消息不可见

在保存消息的时候,只要不创建对应的消息索引,消息便不可见

一阶段消息如何存储

在RocketMQ内部有一个专门的topic,用于存储一阶段的消息,这是一个内部的Topic,不会被消费者消费

Commit如何构建消息

在Commit消息时,Broker会将消息发送到最终的Topic上,实现消费端可见

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章