程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

SpringCloud Alibaba微服务实战三十二 - 集成RocketMQ实现分布式事务

发布于2021-05-29 19:06     阅读(1305)     评论(0)     点赞(26)     收藏(4)


大家好,我是飘渺Jam,一名来自三流城市三流公司的三流程序员,本文是SpringCloud aliabab实战系列的第三十六篇, 欢迎关注!

前言

分布式事务是在微服务开发中经常会遇到的一个问题,之前的文章中我们已经实现了利用Seata来实现强一致性事务,其实还有一种广为人知的方案就是利用消息队列来实现分布式事务,保证数据的最终一致性,也就是我们常说的柔性事务。

消息队列实现分布式事务原理

首先让我们来看一下基于消息队列实现分布式事务的原理方案。

image-20210524104957603

发送消息的服务有个OUTBOX数据表,在进行INSERT、UPDATE、DELETE 业务操作时也会给OUTBOX数据表INSERT一条消息记录,这样可以保证原子性,因为这是基于本地的ACID事务。

OUTBOX表充当临时消息队列,然后我们在引入一个消息中继(MessageRelay)的服务,由他从OUTBOX表中读取数据并发布消息到消息组件。

消息中继的实现可以很简单,只需要通过定时任务定期从OUTBOX表中拉取最新未发布的数据,获取到数据后将数据发送给消息组件,最后将完成发送的消息从OUTBOX表中删除即可,对于失败的消息可以根据业务规则进行重试。

RocketMQ的事务消息

RocketMQ本身已经支持事务消息,如果你们项目使用了RocketMQ&#x

原文链接:https://blog.csdn.net/jianzhang11/article/details/117246973



所属网站分类: 技术文章 > 博客

作者:程序员之神

链接:http://www.javaheidong.com/blog/article/207165/f52556261da22131b766/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)