rocketmq的事务消息

image.png

1 发送半消息
2 mq server 发送半消息成功给发送方
3 发送方收到后,执行本地事务
4 发送方主动提交事务状态,成功or 失败
5 如果成功,mq server 投递到下游,执行下游事务。
6 如果失败,mq server 删除消息
7 如果迟迟没有收到发送方提交事务状态,mq server 会主动去发送方查询,该逻辑需要发送方实现。
8 检查本地事务。根据成功or失败,选择走第5步还是第6步。

补充:
1 如果下游事务失败,需要重试,并有报警人工介入的机制。
2 第7步mq server 会不断的回查直到超时或者次数上限。
3 回查的时候,本地事务有3种状态,commit rollback unkown
4 回查的逻辑就是看本地事务提交的数据在不在,如果不在不能认为是失败了
要返回unkown

优点:稳定可靠,毕竟是经历过双11的
缺点:有侵入性,需要业务实现者多写一个确认事务状态的方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容