總結 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年開源)