Conan
Conan
发布于 2023-12-29 / 132 阅读
0
0

Seata分布式事务三种模式区别

Seata主要支持三种分布式事务模式:

  1. AT模式(Auto-commit Transaction):此模式为自动提交型分布式事务。该模式使用undo/redo logs(撤销/重做日志)来保持全局事务的一致性。操作执行成功后,会自动提交事务,并清除undo log。如果事务需要回滚,它就对undo log进行回滚,操作失败则整个事务回滚。这种模式适用于读多写少的场景,且需要业务代码支持 rollback 操作。

  2. TCC模式(Try/Confirm/Cancel):此模式需要业务代码分别实现Try、Confirm、Cancel三个操作。Try操作负责检查并且预留业务资源,Confirm操作真正地执行业务操作,而Cancel操作负责在失败时释放预留的资源。TCC模式适用于对资源预占严重,且能容易实现业务回滚操作的业务场景。

  3. Saga模式:此模式也需要每个本地事务都有一个对应的补偿事务。补偿事务用于在失败时回滚已完成的本地事务。Saga模式适用于长事务处理和服务编排的业务场景。

请注意,选择使用哪种模式取决于你的业务需求、系统架构和环境。其中,AT模式是最为普遍和易用的,而TCC和Saga模式需要业务代码进行精细的设计和实现。

总结:

  1. AT模式全自动;

  2. TCC模式,需要Try:检查并且预留业务资源、Confirm执行业务操作、Cancel失败释放预留资源(回滚);

  3. Saga模式:包含TCC模式的Confirm和Cancel;

即:AT全自动、TCC全手动、Saga半手动;


评论