Skip to content

Latest commit

 

History

History
42 lines (16 loc) · 1.14 KB

README.md

File metadata and controls

42 lines (16 loc) · 1.14 KB

CAP

对于分布式系统

Consistency ( C )

  • 当某些操作使数据发生变化后,随后的操作(比如读取操作)也应该满足(二选一),从而保证一致性:
    • 使用变化后的值
    • 或服务不可用,收到一个错误响应

Availability ( A )

  • 在分布式系统中,不管请求哪个节点,都应该能够正常都响应,这就实现了可用性保证(但是不一定返回的就是最新的数据)。

Partition tolerance ( P ) 分区容忍性

  • 在任意分区网络故障的情况下,系统仍然继续运行。(对于分布式系统,总是无法保证节点之间的通信总是正常的。所以,除非是 centralized system,否则,P 无法避免。)

场景

CP: 业务需要原子性读、写

AP: 业务要求满足最终一致性即可,或业务场景要求即便是发生了外部错误,也要继续运行

选择

  • 由于 P 不可避免,所以,当网络分区发生后,我们只能在 CPAP 之间作出选择。
  • Eventual Consistency 最终一致性:在 AC 方面做了一个很好当平衡