RocketMQ 分布式事务方案

事务消息 (half 半消息机制) + 事务反查机制

在第一步发送的 half 消息(在事务提交之前,对于消费者来说,这个消息是不可见的

那么,如何做到写入消息但是对用户不可见呢?

RocketMQ 事务消息的做法是:如果消息是 half 消息,放进特殊的消费队列,然后 改变主题 为 RMQ_SYS_TRANS_HALF_TOPIC。然后 RocketMQ 会开启一个定时任务,从 Topic 为 RMQ_SYS_TRANS_HALF_TOPIC 中拉取消息进行消费,根据生产者组获取一个服务提供者发送回查事务状态请求,根据事务状态来决定是提交或回滚消息。

如果没有从第 5 步开始的 事务反查机制 ,如果出现网路波动第 4 步没有发送成功,这样就会产生 MQ 不知道是不是需要给消费者消费的问题,他就像一个无头苍蝇一样

MQ Server 指向系统 B 的操作已经和系统 A 不相关了,也就是说在消息队列中的分布式事务是------本地事务和存储消息到消息队列才是同一个事务 。这样也就产生了事务的最终一致性 ,因为整个过程是异步的,每个系统只要保证它自己那一部分的事务就行了

相关推荐
一个有温度的技术博主5 小时前
Redis主从同步原理:从全量同步到增量同步的完整解析
redis·分布式·缓存
电磁脑机14 小时前
人脑电磁路由拓扑与外耦合脑机接口基础理论
分布式·神经网络·安全·交互
马剑威(威哥爱编程)15 小时前
HarmonyOS 6.0 分布式任务调度 API 详解:把多设备玩成单设备
分布式·华为·harmonyos
嵌入式老牛15 小时前
SST专题3-1 基于光分路器的MMC分布式控制系统架构
分布式·架构·驱动·光纤·sst
F_D_Z15 小时前
Word Embedding :从分布式假设到神经网络语言模型
分布式·word·embedding
feifeigo12317 小时前
航天器交会的分布式模型预测控制(DMPC)MATLAB实现
开发语言·分布式·matlab
CET中电技术17 小时前
CET中电技术如何助光伏企业在“四可“时代抢占先机?
分布式
人间打气筒(Ada)18 小时前
「码动四季·开源同行」go语言:如何使用 ELK 进行日志采集以及统一处理?
开发语言·分布式·elk·go·日志收集·分布式日志系统
黑牛儿19 小时前
MySQL 实战进阶:从单表优化到分布式数据库适配
数据库·分布式·mysql
zz07232019 小时前
Apache Kafka 开源的分布式事件流平台
分布式·kafka·apache