CAP定理

概述

CAP定理是分布式计算领域的一个重要理论,它描述了在一个分布式系统中,三个关键属性之间的权衡关系。一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)。

image-20230909102414658

定理详解

  1. 一致性(Consistency):一致性要求所有参与分布式系统的节点在任何时刻都看到相同的数据副本,即数据的更新必须在所有节点上都是可见的。这意味着在写操作完成后,所有读操作都应该能够立即看到最新的数据。
  2. 可用性(Availability):可用性要求系统在任何时刻都能够响应客户端的请求,即系统不会因为部分故障而完全失效。高可用性意味着系统能够继续提供服务,即使某些节点或组件出现故障。
  3. 分区容忍性(Partition Tolerance):分区容忍性是指系统能够在网络分区或通信故障的情况下继续正常运行。网络分区是指分布式系统中的节点之间的通信被断开或延迟,但系统仍然需要继续工作。

CAP定理的三种典型组合是:

  1. CA(一致性和可用性):在这种情况下,系统会牺牲分区容忍性,即当发生网络分区时,系统可能会停止工作,以确保数据的一致性和可用性。

    能够保证CA的环境只有在单机环境下保证。

  2. CP(一致性和分区容忍性):在这种情况下,系统会牺牲可用性,即当发生网络分区时,系统可能会停止接受新的请求,以确保数据的一致性和分区容忍性。

  3. AP(可用性和分区容忍性):在这种情况下,系统会牺牲一致性,即当发生网络分区时,系统仍然会响应请求,但可能会提供不一致的数据。

    在分布式集群环境下,分区容忍性是必须要保证的即多副本来保证;正是因为这个多副本的缘故引发了副本数据一致性问题,又区分出了CP和AP,如果要保证一致性就得牺牲可用性(大部分都是AP,因为CP强一致性会阻塞请求)。