什么是分布式系统的CAP理论

在2000年的分布式计算原则研讨会(PODC)上,计算机科学家埃里克.布鲁尔针对分布式计算系统的一致性(Consistency)、可用性(Availability)、分区容错性(Partition-tolerant)提出了猜想。在2002年,他的猜想得到了来自麻省理工学院的两位教授Nancy Lynch 和 Seth Gilbert的证明,并被称为CAP定理。

CAP定理证实的是,在一个分布式计算系统中,不可能同时满足下面三个条件:

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分区容错性(Partition-tolerant)

在分布式系统中,一致性(Consistency)分为不同的类型。如果要求分布式系统的数据存储层,在更新数据后,在后续的访问中都能获取到,并且保证结果一致,则是强一致性;如果能够允许后续的部分或者全部访问不到,则是弱一致性;如果允许经过一段时间后,能够访问到更新的数据,并保持一致,则是最终一致性。CAP定理中所说的不可能满足的是强一致性。

可用性指的是在正常响应时间内,服务一直可用。在分布式系统中存在许多节点,每个节点都承担着相应的职责,如果其中某个节点出现故障,就有可能导致整个系统的瘫痪,所以保障系统的可用性是设计分布式系统必须要重点考虑的。对于一个具备可用性的分布式系统,每一个正常运行的节点都必须对请求做出响应。所以,通常我们都会通过停机时间来衡量一个系统的可用性。

可用性分类 可用水平 年可容忍停机时间
容错可用性 99.9999% <1min
极高可用性 99.999% <5 min
自恢复可用性 99.99% <53 min
高可用性 99.9% <8.8h
商品可用性 99% <87.6h

分区容错性是指,当分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。好的分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,或者是机器之间有网络异常,将分布式系统分隔未独立的几个部分,各个部分还能维持分布式系统的运作,这样就具有好的分区容错性。

你可能感兴趣的:(什么是分布式系统的CAP理论)