分布式事务与Seate框架——分布式事务理论

本文深入探讨分布式事务理论,包括X/Open DTP模型、2PC和3PC协议,以及CAP和BASE理论。接着介绍了Seata框架的分布式事务模式,如AT模式和Saga模式,分析了其工作原理和优劣势。最后讨论了分布式事务的常见解决方案,如TCC补偿型和基于MQ的最终一致性方案。
摘要由CSDN通过智能技术生成

前言
  虽然在实际工作中,由于公司与项目规模限制,实际上所谓的微服务分布式事务都不会涉及,更别提单独部署构建Seata集群。但是作为需要不断向前看的我,还是有必要记录下相关的分布式事务理论与Seate框架,甚至Seate框架的源码分析,先从分布式事务理论开始吧,下一部分将介绍对Seata的应用,最后再对核心的源码进行跟踪分析并学习!

主要参考《Spring Cloud Alibaba 微服务原理与实战》中分布式事务章节,有需要资源的朋友可以评论我!(文中的截图均来自此,由于相对好理解所以没有自己画图)

一、分布式事务理论模型

在介绍相应的分布式事务理论模式前,先放出如下图,对分布式事务常见的解决方案作对比:
在这里插入图片描述

最主要的区别就是对一致性的要求:是强一致性还是最终一致性,根据这个核心展开来介绍相关的几种理论介绍

1.X/Open分布式事务模型
  X/Open DTP是由X/Open组织提出的一套分布式事务的标准,这个标准提出使用了2PC(Two-Phase-Commit)来保证分布式事务的完整性。

X/Open DTP包含三种角色:

  • AP: Application 表示应用程序
  • RM: Resource Manager 资源管理器,比如数据库
  • TM: Transaction Manager 表示事务管理器,协调事务和管理资源,类似于Spring的Transaction
    Manager。

在这里插入图片描述

在分布式环境下,RM代表数据库,可能有多个,所以TM需要管理多个数据库的事务,也就是说TM就是一个全局事务管理器。步骤如下:

  • 配置TM,多个RM注册到TM上,相当于TM注册RM作为数据源;
  • AP从TM管理中的RM获取连接,如果RM是数据库则获取JDBC连接;
  • AP向TM发起一个全局事务,生成全局事务ID(XID),XID通知各个RM;
  • AP获取到连接后直接操作RM,此时AP每次操作时会把XID传递给RM;
  • AP结束全局事务,TM会通知各个RM全局事务结束;
  • 根据各个RM的事务执行结果,执行提交或者回滚操作。

需要注意的是:TM与多个RM之间的事务控制,是基于XA协议来完成的,XA协议是X/Open提出分布式事务处理规范。

在这里插入图片描述

2.两阶段提交协议
根据上图可知,2PC具体步骤:

  • 准备阶段:TM通知RM准备分支事务,记录事务日志,并告诉事务管理器的准备结果。
  • 提交/回滚阶段:如果所有的资源管理器RM在准备阶段明确返回成功,则TM向所有的资源管理器PM发起事务提交完成数据的变更,反之如果有任何一个资源管理器RM明确返回失败,则TM会向所以RM发送事务回滚指令。

在这里插入图片描述

但也有如下的缺点:

  • 同步阻塞:所有的RM都需要及时反馈&#x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴天雨落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值