RocketMQ 在分布式事务支持这块机制的底层原理?

参考答案

大厂面试题:

RocketMQ 的一大特点是对分布式事务的支持,说说它在分布式事务支持这块机制的底层原理吧?

参考答案:

分布式系统中的事务可以使用 TCC(Try、Confirm、Cancel)、2pc ,来解决分布式系统中的消息原子性。

RocketMQ 4.3+ 提供分布事务功能,通过 RocketMQ 事务消息能达到分布式事务的最终一致。

RocketMQ 的实现方式:

  • Half Message:预处理消息,当broker收到此类消息后,会存储了 RMQ_SYS_TRANS_HALF_TOPIC 的消息消费队列中。
  • 检查事务状态:Broker会开启一个定时任务,消费RMQ_SYS_TRANS_HALF_TOPIC队列中的消息,每次执行任务会向消息发送者确认事务执行状态(提交、回滚、未知),如果是未知,Broker会定时去回调在重新检查。
  • 超时:如果超过回查次数,默认回滚消息。

即:它并没有真正进入 Topic 的 queue ,而是用了临时 queue ,来放所谓的 half message ,等提交事务后,才会真正的将 half message 转移到 topic 下的 queue 。

以上,是消息队列 RocketMQ 面试题【RocketMQ 在分布式事务支持这块机制的底层原理?】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧