外观
一句话答案
强一致用 2PC/XA,最终一致用 TCC/SAGA/本地消息表/事务消息,根据业务容忍度选择,推荐事务消息。
核心要点
| 方案 | 一致性 | 性能 | 侵入 |
|---|---|---|---|
| 2PC/XA | 强 | 低 | 低 |
| TCC | 最终 | 高 | 高 |
| SAGA | 最终 | 高 | 中 |
| 事务消息 | 最终 | 高 | 低(推荐) |
推荐: 非核心用事务消息,核心资金用TCC
追问与易错
追问方向:
- 你们项目用了哪种分布式事务?为什么选它?
- 2PC 的协调者单点怎么解决?(主备/Paxos 选举)
- 事务消息和本地消息表的区别?(事务消息不需要额外的消息表和轮询)
易错点:
- ❌ "分布式事务一定要强一致"——大部分业务场景最终一致就够了
- ❌ 不考虑补偿/对账机制——任何方案都可能有异常,需要兜底
💡 记忆锚点
选型口诀:资金核心用TCC(手动挡高性能)、普通业务用事务消息(低侵入推荐)、长链路用SAGA(逆序补偿)、传统系统用2PC/XA(强一致但慢)。记住大多数业务最终一致就够了,别上来就追求强一致。