CAP 原理笔记
CAP指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区耐受性),三者不可得兼。
一致性(Consistency):每次数据读取时,永远都是读取最新的,要么就返回错误
可用性(Availability):每次请求都须有响应,可以容忍脏数据
分区耐受性(Partition tolerance):部分机器宕机或者网络异常的情况下,系统仍可以使用
为什么CAP只能同时满足两个?
CAP原则的精髓就是要么AP,要么CP。
例如,在三台服务器的集群中存储value值为0,当修改value=1时,为了保证数据的一致性,要写到3个服务器中,当服务器A发生故障无法更新value的值,则导致了此时三台服务器的value是不一致的。
这时候要保证分区容错性,即当某服务器发生故障时,仍然能保持良好的一致性和可用性服务,则Consistency和Availability不能同时满足。为什么呢?
如果满足了一致性,则服务器a中的更新操作value=1不能成功,这时服务器中所有value=0。
如果满足可用性,即所有客户端都可以提交操作并得到返回的结果,则此时允许写入另两台服务器,服务器A将得到未修改之前的value=0结果。
评论