分布式理论 CAP 的理解

提到分布式系统就会提到CAP理论,这里从个人角度简要的阐述一下对CAP的理解。

C、A、P 含义

  • C:Consistency,一致性。分布式系统中所有机器状态是一致的。及客户端在同一时间访问集群中任意一个节点,如果得到成功的响应,则结果一定是一致的。
  • A:Availability,可用性。客户端访问集群中任意一个节点,总能得到“处理成功”的响应。
  • P:Partition tolerance,分区容忍性。系统能容忍因为一些原因(包括节点机器异常、节点间网络异常等)导致节点无法通信而分成多个分区。

C、A、P 无法同时满足的通俗解释

我们常常听到CAP三者只能同时满足其二。通俗的解释就是:

  • CA or CP:如果你无法保证你的系统不出现任何故障(包括但不限于 节点 or 节点间网络等),那么系统的所有节点不可能同时对外提供100%可用的一致数据。(满足P的条件,C和A只能二者选其一)。
  • CP:如果你能保证你的系统不出现任何故障,那么系统的所有节点能同时对外提供100%可用的一致数据。

C、A、P 无法同时满足的简单证明

C、A、P 三者选其二 or 二者选其一

我们常常听到CAP三者只能同时满足其二。但其实P是每个系统必须满足的,因为分布式系统中不发生机器故障、网络故障是不太可能的。所以P应该是必须的满足的。那三者选其二其实会退化为二者选其一