总结 AT、TCC、Saga、XA 模式分析
| 分布式事务模式 | 介绍 | 技术栈 |
|---|---|---|
| AT 模式 | 无侵入的分布式事务解决方案,适用于不希望对业务进行改造的场景,几乎0学习成本(sql都由框架托管统一执行,会存在脏写问题) | seata、shardingsphere |
| TCC 模式 | 高性能分布式事务解决方案,适用于核心系统等对性能有很高要求的场景(第一阶段会产生行锁,事务执行太久会锁行很久) | seata、service-comb |
| Saga 模式 | 长事务解决方案,适用于业务流程长且需要保证事务最终一致性的业务系统(第一阶段就操作DB,会存在脏读问题) | seata、shardingsphere、service-comb |
| XA模式 | 分布式强一致性的解决方案,但性能低而使用较少。 | seata、shardingsphere |
| Saga和TCC模式区别不大,TCC就是多了个锁行的步骤(避免了脏读,但事务执行太久会导致锁行很久,不适用于长事务) |
注:
shardingsphere的Saga 模式 引擎使用的是service-comb(较comb实现了解析sql自动回滚)
shardingsphere的AT模式引擎是用的Seata引擎
shardingsphere是从Sharding-JDBC进化而来,分库分表使用很火
shardingsphere开源地址:https://github.com/apache/shardingsphere (当当开源)
seata开源地址:https://github.com/seata/seata (阿里2019年开源)
service-comb开源地址:https://github.com/apache/servicecomb-pack (华为2017年开源)
本文介绍了分布式事务的四种主要模式:AT、TCC、Saga和XA。AT模式适合不希望改动业务的场景,但可能存在脏写问题;TCC模式适用于高性能需求,但可能造成长时间锁行;Saga模式用于长事务,可能有脏读风险;而XA模式虽强一致但性能较低。此外,文章提到了seata、shardingsphere和服务组合(service-comb)等开源框架在这些模式中的应用,并比较了Saga与TCC的区别。
6322

被折叠的 条评论
为什么被折叠?



