跳到主要内容

Spring Cloud Alibaba 之 Seata分布式事务服务;AT事务模式机制,读写隔离(二十一)

AT 模式

Seata 是什么

前提:

1、 基于支持本地ACID事务的关系型数据库;

2、 Java应用,通过JDBC访问数据库;

整体机制

两阶段提交协议的演变:

一阶段:

业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源(本地事务,就已经在数据库持久化了)

二阶段:

1、 没有异常;

提交异步化,非常快速地完成(正常情况,就提交了,同步一下TC Server的状态,删除回滚日志)

2、 有异常;

回滚,通过一阶段的回滚日志进行反向补偿(如订单删除,库存加回去,余额加回去)

一、AT事务模式分布式事务工作机制

Seata 是什么

以一个示例来说明整个 AT 分支的工作过程

业务表:product

FieldTypeKey
idbigint(20)PRI
namevarchar(100)
sincevarchar(100)

AT分支事务的业务逻辑:

update product set name = 'GTS' where name = 'TXC';

一阶段

 

过程:

1、 解析SQL:得到SQL的类型(UPDATE),表(product),条件(wherename='TXC')等相关的信息;

2、 查询前镜像:根据解析得到的条件信息,生成查询语句,定位数据;

select id, name, since from product where name = 'TXC';