Saga模式:分布式事务的另一种解法
📅 2026/7/14 16:52:34
👁️ 阅读次数
📝 编程学习
507 | Saga模式:分布式事务的另一种解法
场景引入
旅游团的故事:
你参加了一个旅游团:
- 导游打电话订酒店 ✓
- 导游打电话订机票 ✓
- 导游打电话订景点门票 ✗(满了!)
问题:酒店和机票已经订了,景点订不了,咋整?
解决方案:
- 打电话取消酒店
- 打电话退机票
这就是Saga的核心思想:用补偿代替回滚。
什么是Saga
Saga = 长事务的分解
Saga将一个长事务分解成多个短事务,每个短事务都有对应的补偿事务。
传统事务: A → B → C(全部成功或全部失败) Saga: A → B → C ↓ ↓ ↓ ┴ ┴ ┴ 补偿 补偿 补偿(任意一步失败时执行)Saga vs 2PC
2PC(两阶段提交)
准备阶段: 协调者 → 所有参与者:"准备好了吗?" 参与者 → 协调者:"准备好了" / "没准备好" 提
编程学习
技术分享
实战经验