Seata
一个分布式事务处理框架
四大核心概念
-
XID:Transaction ID
全局唯一的事务ID
-
TM:TransactionManager
事务管理器(控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议)
-
TC:TransactionCoordinator
事务协调者(维护全局事务说点平行状态,负责协调并驱动全局事务的提交或回滚)
-
RM:ResourceManager
资源管理器(控制分支事务,负责分支注册、状态汇报、并接收事务协调器的指令,驱动分支 (本地)事务的提交和回滚)
工作流程
一)
TM 向 TC 申请开启一个全局事务,全局事务创建成功并生成一个全局唯的 XID
二)
XID 在微服务调用链路的上下文中传搡
三)
RM 向 TC 注册分支事务,将其纳入XID 对应全局事务的管辖
四)
TM 向 TC 发起针对 XID 的全局提交或回滚决议
五)
TC 调度 XID 下管辖的全部分支事务完成提交或回滚提交
四大事务模式
AT(默认):弱一致性; TCC的全局锁进行隔离高; 性能高; 适用于一般分布式事务场景
TCC:弱一致性;预留资源隔离 ;性能特别高;适用于要求高性能的场景
SAGA: 最终一致性;无隔离;性能特别高;适用于业务流程长或多的场景
XA:强一致性; 完全隔离; 低; 对系统一致性要求非常高的场景
AT模式整体机制--两阶段提交协议
一阶段
(本地事务提交/回滚)
业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源
二阶段
(全局事务提交/回滚)
提交异步化(非常快速地完成)

浙公网安备 33010602011771号