文章内容来源于网络。
CAP理论,指的是一个分布式系统无法同时满足Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)。目前最流行的对CAP理论解释的情形是从数据在网络环境中存在多个副本出发的。
Consistency(一致性)是指分布式系统中的所有节点的数据是否一致,可以分为强一致性和弱一致性,弱一致性中最为常用的是最终一致性。强一致性指的是任何时刻各个节点的数据总是一致的。最终一致性是一致性中较弱的一种,同一时刻各个节点的数据可能不一样,系统在经过一段(比较短的)时间的自我恢复和修正后使各个节点的数据最终一致。
Availability(可用性)是指数据是否可以正常读写。
Partition tolerance(分区容忍性)可以理解为对网络故障的容错,比如分布式系统中的节点因为网络故障分成了几个区而不再是互相连通的,但是不能影响系统对外提供服务。
满足分区容忍性的办法是将数据复制到多个节点,数据复制会导致多个节点数据不一致。
要满足强一致性,网络中的节点越多,等待全部节点数据写入完成的时间就会越久,所以可用性就越差。
如果是满足最终一致性,那么可用性就会得到提高。
大型应用程序一般会选择A和P,在某种程度上放弃C。