5.9、数据一致性
分类: 微服务架构理论与实践
数据一致性
数据一致性是分布式系统的核心挑战。在微服务架构中,如何保证数据一致性是一个重要问题。本节将学习数据一致性。
本节将学习:CAP 定理、最终一致性、分布式事务,以及 Saga 模式。
CAP 定理
定理说明
CAP 定理:
- C(Consistency):一致性
- A(Availability):可用性
- P(Partition Tolerance):分区容错性
CAP 定理指出: 在分布式系统中,最多只能同时满足两个特性。
选择策略
CAP 选择策略:
- CP:一致性 + 分区容错性(如数据库)
- AP:可用性 + 分区容错性(如缓存)
- CA:一致性 + 可用性(单机系统)
最终一致性
一致性模型
最终一致性:
- 允许短暂的不一致
- 最终达到一致状态
- 适合大多数业务场景
实现方式
最终一致性实现方式:
- 事件驱动
- 消息队列
- 异步更新
分布式事务
事务类型
分布式事务类型:
- 2PC(两阶段提交):强一致性,但性能低
- 3PC(三阶段提交):改进的 2PC
- TCC(Try-Confirm-Cancel):补偿模式
- Saga:长事务模式
Saga 模式
模式说明
Saga 模式:
- 将长事务分解为多个短事务
- 每个短事务有补偿操作
- 最终一致性
Saga 示例
官方资源
- CAP 定理:https://en.wikipedia.org/wiki/CAP_theorem
- Saga 模式:https://microservices.io/patterns/data/saga.html
本节小结
在本节中,我们学习了:
第一个是 CAP 定理。 一致性、可用性、分区容错性的权衡。
第二个是最终一致性。 允许短暂不一致,最终达到一致。
第三个是分布式事务。 2PC、3PC、TCC 等事务模式。
第四个是 Saga 模式。 长事务分解和补偿机制。
这就是数据一致性。理解数据一致性,有助于我们设计合理的微服务架构。
在下一节,我们将学习微服务治理。