概述

seata-mod

AT方案

图片3.pngimg

图片4.png

图片5.png

 

隔离级别

性能

XA方案事务性资源的锁都要保持到Phase2完成才释放。AT将锁分为了本地锁和全局锁,本地锁由本地事务管理,在分支事务一阶段结束时释放,全局锁由TC管理,在二阶段全局提交时,全局锁立即释放,二阶段回滚时,全局锁被持有至分支的二阶段结束。AT剥离了分布式事务方案对数据库在协议支持上的要求,避免XA协议需要同步协调导致资源锁定时间过长的问题。

imgimg

TCC方案

概述

tcc-mod

图片7.png

容错性

image.png

image.png

saga方案

image-20240825162517159

XA方案

AT实现

分布式事务入口

启动配置

数据源代理

Seata为与数据源相关的组件构建包装类DataSourceProxy, ConnectionProxy, StatementProxy, PreparedStatementProxy,用于在 SQL 语句执行前后、事务 commit 或者 rollback 前后进行与分布式事务相关的操作,例如分支注册、状态上报、全局锁生成、全局锁查询、快照存储、反向SQL生成等。

img

连接代理

执行代理

img

一阶段拦截

img

TM初始化

RM初始化

指令Handler

RM适配

二阶段提交

img

img

二阶段回滚

img