1 Seata的AT模式
分布式事物根据追求的一致性程度及业务场景可以分为:强一致性、弱一致性、最终一致性。
强一致性:任何一次读都能读到某个数据的最近一次写的数据;
弱一致性:数据更新之后,如果能容忍的访问只能访问到部分或者全部访问不到,则是弱一致性;
最终一致性:不保证在任何时刻数据是完整的(状态一致),但是随着时间的推移,数据和最终达成一致(有一个时间度)。
AT模式是一种两阶段提交的策略,需要一个全局协调器来协调处理各个分支任务,是⽆侵⼊的分布式事务解决⽅案。
1.1 一阶段
在这个阶段,Seata 会拦截业务 SQL,⾸先解析 SQL 语义,找到业务 SQL要更新的业务数据,在业务数据被更新前,将其保存成before image,然后执⾏业务 SQL更新业务数据,在业务数据更新之后,再将其保存成after image,最后⽣成⾏锁。以上操作全部在⼀个数据库事务内完成,这样保证了⼀阶段操作的原⼦性。