四种分布式事务粗略理解
Posted zengxm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四种分布式事务粗略理解相关的知识,希望对你有一定的参考价值。
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
以上是关于四种分布式事务粗略理解的主要内容,如果未能解决你的问题,请参考以下文章