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 定理。 一致性、可用性、分区容错性的权衡。

第二个是最终一致性。 允许短暂不一致,最终达到一致。

第三个是分布式事务。 2PC、3PC、TCC 等事务模式。

第四个是 Saga 模式。 长事务分解和补偿机制。

这就是数据一致性。理解数据一致性,有助于我们设计合理的微服务架构。

在下一节,我们将学习微服务治理。