分布式事务

CAP原理

CAP指是 Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容忍性)

由于分布式系统难免存在网络分区,所以分布式系统基本都满足Partition tolerance(分区容忍性),而C和A不能同时满足。

符合CP的场景:满足C舍弃A,强调一致性。一般是数据比较重要,不能出现延迟。
符合AP的场景:满足A舍弃C,强调可用性。AP强调的是可用性,允许短暂的不一致但是要保证最终一致性,在实际应用中符合AP的场景较多。

Seata 工作模式

Seata支持四种不同的分布式事务解决方案,XATCCATSAGA。Seata默认使用的是AT模式。

AT模式

  • TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚,相当于监控中心。
  • TM (Transaction Manager) - 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。
  • RM (Resource Manager) - 资源管理器:管理分支事务,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
一阶段
1.TM通知TC发起并注册开启全局事务。TC记录全局事务开启状态。
2.TM通知RM,开始执行分支事务。RM向TC注册分支事务。
3.RM执行sql并提交,同时在undolog记录修改数据的原始快照版本。
4.RM向TC报告事务执行成功或者失败的状态
二阶段
1.TM通知TC事务结束,提交或者回滚事务。
2.TC检查各分支执行的事务状态。
3.1.若是都成功,则TC通知各个RM进行提交,删除undolog中的快照数据。
3.2.若是有分支事务失败,则TC通知各个RM进行回滚,根据undolog中的快照恢复数据库,最后删除快照。
posted @ 2025-03-17 21:17  林之听风  阅读(19)  评论(0)    收藏  举报