美文网首页
RockMq事务消息原理

RockMq事务消息原理

作者: 大强斌 | 来源:发表于2020-05-20 16:55 被阅读0次

场景

        通过mq 进行分布式事务的一致性控制,参考转账事务原理

目的:

        保持本地事务和mq发送的原子性

过程:

       步骤1: 发送prepare消息到broker

       步骤二 执行本地事务

       步骤三:发送本地事务提交的结果,到broker中。broker根据提交的结果 对prepare中的消息决定提交还是回滚。

                        提交的处理------

                                    1将prepare的消息从对应的top 转发到原top 客户进行消费.

                                    2另外一份存储到 已处理topic

                                   3prepare对应的消息会被删除。

                        回滚

                                    和提交不同的是,参考上面步骤,没有步骤1

步骤四:对于因为网络 或客户端的问题,broker没有收到客户端的状态提交,会有定时任务进行查询补漏机制,

定时查询客户端执行的本地事务状态(TransactionListener check方法),进行对事务进行处理。

可能出现的问题

  1执行本地事务 客户端宕机了,broker 服务器,

 2没有接受到客户端发送的事务执行结果    

3broker 宕机了。

以上几种场景通过check机制,进行事务的补偿

事务消息本质上属于saga 事务的一种。将一连串的大事务。分成几个独立的小事务。

    适应场景 1必须支持幂等性 2场景的独立性

  1性能高 2 业务改造成本低3 无法解决事务的隔离性 

事务理论参考 本博客的分布式事务 https://www.jianshu.com/writer#/notebooks/40709597/notes/56179033

原文参考

        http://silence.work/2018/08/22/RocketMQ-4-3%E4%BA%8B%E5%8A%A1%E4%BD%BF%E7%94%A8%E4%B8%8E%E5%88%86%E6%9E%90/

如果感觉好辛苦您点个赞,谢谢

相关文章

  • RockMq事务消息原理

    场景: 通过mq 进行分布式事务的一致性控制,参考转账事务原理 目的: 保持本地事务和mq发送的原子性 过程: ...

  • 分布式事务之rabbitmq肉身实战

    本文对比 二阶段事务、最大努力交付以及消息最终一致性,并给出部分解决方案,最终一致性方案参考阿里RockMQ事务消...

  • RocketMq-事务消息原理

    事务消息原理 by shihang.mai rocketMq用的是2pc producer发送消息前,先开启事务,...

  • RocketMQ事务消息

    抽空扒一下RocketMQ的事务消息,看看具体的实现,版本4.6.0。 基本原理 RocketMQ的事务消息实现是...

  • 消息队列事务型消息原理浅析

    原创声明:本文系作者原创,谢绝个人、媒体、公众号或网站未经授权转载,违者追究其法律责任。 前言 在金融级分布式架...

  • rocketMq事务消息

    在RocketMq4.3版本之后就已经对事务消息的支持了,rocketmq事务消息采用的是两阶段提交的原理进行实现...

  • zookeeper、kafka、redis

    zookeeper kafka 1 kafka优势: 消息事务 零拷贝 2 Kafka原理:http://www....

  • 事务消息的发送与接收

    事务消息的发送和接收流程如下,原理很简单就是利用数据库的事务保证数据和消息发送的一致性,对于消息采用最大努力通知策...

  • rockmq 过滤消息几种方式总结

    提供的方式 方式1 tag过滤消息,优点过滤简单 高效 不适合复杂过滤 方式2 filterSe...

  • Spring事务完全解析

    事务是什么?了解事务的原理吗?说下Spring的事务原理,能自己实现Spring事务原理吗?先自我检测下这些知识掌...

网友评论

      本文标题:RockMq事务消息原理

      本文链接:https://www.haomeiwen.com/subject/bdsnohtx.html