CAP 理论详解笔记
一、什么是CAP理论
一个分布式系统最多只能同时满足一致性
(Consistency)、可用性
(Availability)和分区容忍性
(Partition Tolerance)这三项中的两项。
一致性
所有节点同时看到相同的数据,更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,等尚于所有节点拥有数据的最新版本。
可用性
任何时候,读写都是成功的,即服务一直可用,而且是正常响应时间。我们平时会看到一些IT公司的对外宣传,比如系统稳定性已经做到3个9、4个9,即99.9%、99.99%,这里的N个9就是对可用性的一个描述,叫做SLA,即服务水平协议。比如我们说月度99.95%的 SLA,则意味着每个月服务出现故障的时间只能占总时间的0.05%,如果这个月是30天,那么就是21.6分钟。
分区容错性
系统容忍网络出现分区,并且在遇到某节点或网络分区之间网络不可达的情况下,仍然能够对外提供满足一致性和可用性的服务。
简单说就是:系统在遇到某节点或者网络分区故障的时候,仍然能够对外满足可用性或一致性的服务.
二、如何证明只能三取其二
反证法:
如果CAP三者可同时满足,由于允许Р的存在,则一定存在节点之间的丢包,如此则不能保证C
因为允许分区容错,写操作可能在节点1上成功,在节点2上失败,这时候对于Client 1(读取节点1和Client2(读取节点2),就会读取到不一致的值,出现不一致的情况。如果要保持一致性,写操作必须同时失败,也就是降低系统的可用性。
关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。