Seata的AT模式:AT模式是Seata的默认模式,也是一种最终一致的分阶段事务模式,在一阶段,Seata拦截业务SQL,解析SQL语义,找到要更新的业务数据,并保存快照数据和行锁。简单来说就是看中结果,结果需要符合业务实际逻辑
步骤
准备undo-log(数据快照),简单说就是建个数据库用于备份数据,谁需要备份就给谁添加
准备Nacos配置,注意yaml文件位置改为AT,AT是默认模式
**#### 阶段一:
TM注册分支,同时记录当前数据用于备份,执行业务层的sql语句,执行后后台数据发生变化,报告事务状态**
阶段二:
如果该业务可以通过则直接进行提交,同时删除阶段一保存的快照即undo-logo中的内容,如果不通过,则需要进行数据回滚,数据回归快照内容。
打个比方来说 ,一个电子商城服务的下单流程是:用户发起一个交易请求,后台数据库需要创建一个订单,此时的订单就需要加一,同时购物车中的订单内容需要被清空,同时库存中数据库的数量需要减一,需要回滚的话即订单加一清理购物车但是没有库存,此时不符合最终一致性就需要对购物车进行数据备份和回滚,订单删除