CAP定理

理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

  • 一致性(Consistency):每一次读获取写入的最新数据或者一个错误(Every read receives the most recent write or an error)
  • 可用性(Availability):每次请求都能获取到非错的响应—但是不保证获取的数据为最近写入的最新数据(Every request receives a (non-error) response – without the guarantee that it contains the most recent write)
  • 分区容错性(Partition tolerance):系统不中断操作,尽管节点间的通信可能出现任意数量的消息被丢失(或延迟)(The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes)

当网络分区通信发现错误时,我们可以有两种选择:

  • 取消当前操作,降低了可用性,但保证了一致性;
  • 继续当前操作,提高了可用性,但保证不了一致性;

实际上,CAP定理暗示了在网络分区存在的情况下,要么选择一致性 要么选择可用性。注意这里的一致性不同于ACID 数据库事物中的一致性保证。

参考资源

  1. 轻松理解CAP理论 - 房东的狗的文章 - 知乎 https://zhuanlan.zhihu.com/p/50990721