关于CAP定理的一点说明
一、CAP是什么 CAP是理解分布式系统的基础,它其实是三个英文单词Consistency,Availability,Partition tolerance的缩写,这三个英文单词也就是CAP的三大组成部分。 提出这个指标的人指出:这三个指标不能同时做到。这就是著名的CAP定理。 下面我们来说说这三个指标,注意不考虑单服务器的情况。 1.Consistency,一致性 一致性意味着当用户发起写操作后,所有的读操作都必须返回该值。这就要求用户在向A服务器发起写操作成功后,A服务器必须向与它相关联的B服务器发送一条消息,要求B服务器也完成相同的写操作。这样后面的用户发起读操作时,无论读取的是哪个服务器的信息,得到的数据都是一样的,这就是一致性。 2.Availability,可用性 即有求必应,服务器收到请求,就必须在有限的时间内返回结果给用户。 3.Partition tolerance,分区容错 即分布式系统在遇到任何网络分区故障的时候,仍然能够保证提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。 二、主要矛盾 对于一个分布式系统架构而言,分区容错性是一个最基本的要求,而如果不满足分区容错性,那实际上意味着如果分布式系统某个分区出故障了,整个系统都会停掉,这和分布式架构的设计理念不符。所以其实CAP原理的主要矛盾在于一致性和可用性。 那为什么一致性和可用性无法同时成立呢