码迷,mamicode.com
首页 > 其他好文 > 详细

四种分布式事务粗略理解

时间:2020-06-08 00:41:01      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:返回   img   个人   may   mamicode   状态   load   下一步   loading   

 

ps:个人理解 勿看,我看了都觉得傻逼

 

 

 

一、两阶段提交(2PC)

以web系统来说,一个聚合服务(购买请求) 对服务发送分别的请求(商品,订单,金额)方法,开启begin事务,但是不进行提交,返回结果(begin开启,commit未提交的状态)

技术图片

 

 

如果成功则进行下一步,聚合服务返回要对应服务commit的请求,返回commit成功,由聚合服务对客户端返回成功

否则聚合服务发送请求回应rollback.

技术图片

 

 

 

 

 

二、补偿事务(TCC)

每个事务都会含有两个操作,一个是正常操作,一个是事务或者异常发生问题进行一个操作回滚

每个服务将自己对应数据库的事务进行操作,如果其中有一个异常则写入回滚

技术图片

 

 

 

三、本地消息表(异步确保)

和tcc补偿事务有点像,在每个服务对应的数据库建立一个消息表

比如 商品 订单

首先对商品减1,将减1操作和操作该事务的行为写入,通过mq(或者其他中间件)让下一个事务进行消费,消费如果异常在一定范围之内重试,异常则进行回滚并通过mq让上一个事务进行回滚

 

四、MQ 事务消息

每个事务开始操作和接受操作发送到mq进行是否事务成功,消费者接受mq信息对其操作

技术图片

其中1-2步操作之间如果时间超过mq等待时间,会对所有的有1信息但是没有2里确定进行回调访问是否尝试or回滚,成功才会进行3-4

技术图片

 

 

 

 

 

来源: 

https://www.cnblogs.com/mayundalao/p/11798502.html

https://blog.csdn.net/wwd0501/article/details/90611671

https://www.ucloud.cn/yun/47411.html

https://www.ximalaya.com/jiaoyu/11089502/55675874

 https://studygolang.com/articles/9559

四种分布式事务粗略理解

标签:返回   img   个人   may   mamicode   状态   load   下一步   loading   

原文地址:https://www.cnblogs.com/zengxm/p/13062888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!