CAP理论为什么不能同时满足?
1、CAP理论是什么?
CAP定理,又称CAP原则,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP定理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
2、CAP理论为什么不能同时满足?
2000年的时候,加州大学伯克利分校的光头教授Eric Brewer提出了CAP猜想:CAP永远不可能同时满足,提高其中任意两者的同时,必然要牺牲第三者。这个定理告诉大家,不要再浪费时间去研究如何兼顾了,因为这根本就是不可能的,只能根据具体应用,来决定如何在三者之间进行取舍。
后来,CAP猜想由麻省理工学院的两位科学家证明。CAP猜想的证明相对比较简单:采用反证法,如果三者可同时满足,则因为允许P的存在,一定存在节点之间的丢包,如此则不能保证C,证明简洁而严谨。从此,CAP理论正式在学术上成为了分布式计算领域的公认定理,并深深的影响了分布式计算的发展。
3、CAP理论后记
在CAP理论提出十二年之后,Eric Brewer教授又出来辟谣:“三选二”的公式一直存在着误导性,它会过分简单化各性质之间的相互关系。这三种性质都可以在某种程度上进行衡量,并不是非黑即白的有或无。可用性显然是在0%到100%之间连续变化的,一致性分很多级别,连分区也可以细分为不同含义,如系统内的不同部分对于是否存在分区可以有不一样的认知。所以,一致性和可用性并不是水火不容,非此即彼的。