RocketMQ 分布式事务方案

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

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

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

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

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

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

相关推荐
Alluxio37 分钟前
Alluxio正式登陆Oracle云市场,为AI工作负载提供TB级吞吐量与亚毫秒级延迟
人工智能·分布式·机器学习·缓存·ai·oracle
武子康1 小时前
Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
java·分布式·消息队列·rabbitmq·ruby·java-activemq
zhz52141 小时前
代码之恋(第十五篇:分布式心跳与网络延迟)
网络·分布式·ai·重构·vue·结对编程
Lethehong2 小时前
【探索实战】Kurator分布式云原生平台快速上手与实战指南
分布式·云原生
画江湖Test2 小时前
分布式缓存穿透解决方案
分布式·缓存·电商系统·缓存解决方案
Lethehong3 小时前
【探索实战】Kurator分布式云原生平台全栈实践指南:从入门到企业级落地
分布式·云原生
Wnq100723 小时前
在去中心化的边缘计算机集群中部署分布式 CORBA 及其AGENT
分布式·去中心化·区块链
Wang's Blog3 小时前
RabbitMQ: 解析Kubernetes原理与高可用集群部署实践
分布式·kubernetes·rabbitmq
泰克教育官方账号3 小时前
泰涨知识 | Hadoop的IO操作——压缩/解压缩
大数据·hadoop·分布式