外观
一句话答案
微服务间数据一致性靠分布式事务(TCC/SAGA/事务消息),原则:能异步不同步,能最终一致不强一致。
核心要点
方案选择:
| 场景 | 推荐 |
|---|---|
| 核心资金 | TCC |
| 长流程编排 | SAGA |
| 异步解耦 | 事务消息 |
| 数据同步 | Canal + MQ |
原则: 能异步不同步,能最终一致不强一致
追问与易错
追问方向:
- 跨服务一致性有哪些方案?
- 怎么保证消息发送和事务原子性?
- 对账机制怎么设计?
易错点:
- ❌ 微服务用分布式事务——尽量避免用最终一致
- ❌ 跨服务直接调用保证一致——网络不可靠需补偿
💡 记忆锚点
微服务数据一致性选型决策树:先问"能不能异步?"——能异步就用事务消息(最轻量);必须同步再问"是资金核心吗?"——是就用TCC(手动挡强控制),不是就用SAGA(补偿链)。兜底原则:能异步不同步,能最终一致不强一致,别忘了对账机制。