Spring Cloud Alibaba 之 Seata分布式事务服务;AT事务模式机制,读写隔离(二十一)
AT 模式
前提:
1、 基于支持本地ACID事务的关系型数据库;
2、 Java应用,通过JDBC访问数据库;
整体机制
两阶段提交协议的演变:
一阶段:
业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源(本地事务,就已经在数据库持久化了)
二阶段:
1、 没有异常;
提交异步化,非常快速地完成(正常情况,就提交了,同步一下TC Server的状态,删除回滚日志)
2、 有异常;
回滚,通过一阶段的回滚日志进行反向补偿(如订单删除,库存加回去,余额加回去)
一、AT事务模式分布式事务工作机制
以一个示例来说明整个 AT 分支的工作过程
业务表:product
| Field | Type | Key |
|---|---|---|
| id | bigint(20) | PRI |
| name | varchar(100) | |
| since | varchar(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';