分布式CAP
某厂面试归来,发现自己落伍了!>>> 互联网发展到现在,由于数据量大、操作并发高等问题,大部分网站项目都采用分布式的架构。 而分布式系统最大的特点数据分散,在不同网络节点在某些时刻(数据未同步完,数据丢失),数据会不一致。 在2000年,Eric Brewer教授在PODC的研讨会上提出了一个猜想:一致性、可用性和分区容错性三者无法在分布式系统中被同时满足,并且最多只能满足其中两个! 在2002年,Lynch证明其猜想,上升为定理。被这就是大家所认知的CAP定理。 CAP是所有分布式数据库的设计标准。例如Zookeeper、Redis、HBase等的设计都是基于CAP理论的。 CAP定义 所谓的CAP就是分布式系统的三个特性: Consistency,一致性。所有分布式节点的数据是否一致。 Availability,可用性。在部分节点有问题的情况(数据不一致、节点故障)下,是否能继续响应服务(可用)。 Partition tolerance,分区容错性。允许在节点(分区)数据不一致的情况。 深入理解 有A、B、C三个分布式数据库。 当A、B、C的数据是完全相同,那么就符合定理中的Consistency(一致性)。 假如A的数据与B的数据不相同,但是整体的服务(包含A、B、C的整体)没有宕机,依然可以对外系统服务,那么就符合定理中的Availability(可用性)。