Seata是一个分布式事务解决方案,它提供了四种不同的模式来满足不同的分布式事务需求。这四种模式分别是:AT模式、TCC模式、Saga模式和XA模式。
AT模式(Automatic Transaction Mode) AT模式是Seata的默认模式,它是一种最终一致性的分阶段事务模式,无需对业务代码进行侵入性修改。在AT模式中,Seata会自动将分布式事务切分为多个本地事务,并通过在每个参与者(RM)上注册和管理这些本地事务来实现事务的一致性。AT模式的优点是性能较好,无需对业务代码进行修改,但缺点是事务是最终一致性的。
TCC模式(Try-Confirm-Cancel Mode) TCC模式是一种最终一致性的分阶段事务模式,需要对业务代码进行侵入性修改。在TCC模式中,业务逻辑被划分为三个阶段:Try、Confirm和Cancel。在Try阶段,尝试执行业务操作并预留资源;在Confirm阶段,确认执行业务操作;在Cancel阶段,取消执行业务操作并释放资源。TCC模式的优点是性能较好,不依赖数据库事务,但缺点是需要对业务代码进行修改,且事务是最终一致性的。
Saga模式 Saga模式是一种长事务模式,需要对业务代码进行侵入性修改。在Saga模式中,事务被划分为多个阶段,每个阶段都有对应的补偿操作。当一个阶段失败时,可以通过执行补偿操作来回滚之前的操作。Saga模式的优点是可以处理长时间运行的事务,但缺点是需要对业务代码进行修改,且事务是最终一致性的。
XA模式 XA模式是一种强一致性的分阶段事务模式,需要对业务代码进行侵入性修改。在XA模式中,Seata会通过协调器(TC)来管理全局事务,并通过XA协议来实现分布式事务的一致性。XA模式的优点是事务的强一致性,但缺点是性能较差,且依赖关系型数据库实现事务。
AT模式适用场景:
TCC模式适用场景:
Learn more:
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!