您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页rocketMq-事务消息介绍

rocketMq-事务消息介绍

来源:二三四教育网

事务消息介绍

rocketMq在4.x版本里面的事务消息功能似乎不是完整的,在阅读的源码过程中发现只有其实宏观上看可以区分为两个阶段

阶段一:prepare阶段,该阶段主要发一个消息到rocketMq,但是该消息只存储在commitLog当中,在consumeQueue中不可见。

阶段二:commit/rollback阶段,该阶段主要是在commit阶段重新生成一个message(prepare阶段消息的克隆),保存到commitLog当中,同时会将该消息保存至consumeQueue当中。

事务消息举例

分布式事务的场景 rocketMq处理分布式消息的过程

说明:

    1、先发送prepared消息,也就是步骤1中的发送转账消息

    2、执行本地操作,也就是步骤4中的本地事务

    3、发送commit消息,也就是步骤中5中的发送确认消息

rocketMq的交互流程

rocketMq分布式事务的过程

说明:

    1、参考阿里云的消息队列截图

事务消息的producer

事务性消息生产者

说明:

    1、分布式事务producer多了两个东西,本地事务执行函数,提供给远程回调的回调函数(基本没用)。

事务消息的prepare阶段


prepare消息

说明:参见DefaultMQProducerImpl类

未拷贝至consumeQueue

说明:参见DefaultMessageStore类

    1、prepare消息不回拷贝至consumeQueue,也就是消息不可见。

事务消息的commit阶段

commit阶段查找prepare消息并提交commitLog

说明:参见EndTransactionProcessor类。

    1、EndTransactionProcessor是事务消息commit的入口

放置consumeQueue

说明:参见DefaultMessageStore类

    1、rocketMq在消费commit的事务消息的时候会放置到consumeQueu当中

    2、放置到consumeQueue以后就可以被消费了

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务