CAP理论
CAP理论指出,在网络分区的情况下(即P条件),系统必须在保持一致性和可用性之间做出选择,无法同时满足。这意味着在出现网络分区时,分布式系统不得不权衡是保持一致性还是可用性。
概念
CAP理论指出,在网络分区的情况下(即P条件),系统必须在保持一致性和可用性之间做出选择,无法同时满足。这意味着在出现网络分区时,分布式系统不得不权衡是保持一致性还是可用性。
一致性(Consistency)
一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,所以,一致性,说的就是数据一致性。
对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。
如果能容忍后续的部分或者全部访问不到,则是弱一致性。
如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。
CAP中说,不可能同时满足的这个一致性指的是强一致性。
可用性(Availability)
可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。
-
1个9:(1-90%)×365=36.5天
-
2个9:(1-99%)×365=3.65天
-
3个9:(1-99.9%)×365×24=8.76小时
-
4个9:(1-99.99%)×365×24=0.876小时=52.6分钟
-
5个9:(1-99.999%)×365×24×60=5.26分钟
-
6个9:(1-99.9999%)×365×24×60×60=31秒
分区容错性(Partition Tolerance)
分区容错性指“the system continues to operate despite arbitrary message loss or failure of part of the system”,即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
简单点说,就是在网络中断,消息丢失的情况下,系统如果还能正常工作,就是有比较好的分区容错性。