内容目录
CAP定理,也被称为Brewer定理,是描述分布式系统中无法同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance)这三个特性的理论。
一致性(Consistency):所有的节点在同一时间对系统的状态有相同的视图。即在一个分布式系统的所有节点中,对于同一份数据,是否都能读取到最新的值。
可用性(Availability):每次请求都能获取到非错误的响应——但是不保证获取的一定是最新数据。换言之,对系统的请求可以在有限的时间内得到响应。
分区容忍性(Partition tolerance):即使网络发生分区,系统仍能正常运行。系统需要在网络分区(节点间通信的中断)期间继续运行。
然而,在现实中,网络分区在分布式系统中是无法避免的,必须处理的问题。因此,当网络分区发生时,我们必须在一致性和可用性之间做出选择,只能满足其中的一个。这就是Brewer定理的主要观点。同时,通常我们会选择AP或者CP作为我们涉及系统的原则,而一般不会选择CA,是因为在分布式系统中网络分区是无法避免的,如果在分布式系统中发生了网络分区那么CA就不会成立。