CAP和BASE理论理解

来源:互联网 发布:淘宝商城品牌正品40岁 编辑:程序博客网 时间:2024/05/16 07:35

分布式系统都是基于CAP/BASE理论进行设计的。CAP/BASE在分布式系统设计过程中提供了最基本的也是最重要的原则。
正确的理解CAP/BASE能够更好的指导分布式系统的设计,当然了只有经历了大量的分布式系统实战,才能更加深刻的理解CAP/BASE理论。

CAP

  1. CAP是一致性(Consistency),可用性(Availability),分区容错性(Partition tolerance)的缩写。在分布式系统设计中,任何一个系统都不可能同时满足这三个特性,只能满足其中2个特性。既然是分布式系统,所以分区容错性是必须要有的,所以在实际设计过程中,更多的是在一致性和可用性之间寻找平衡。
  2. CAP三个特性的具体含义如下:
    2.1. 一致性:这里说的一致性是指强一致性。分布式系统中,数据都是以多副本的形式存储在不同的节点中,要任何时刻数据副本之间的状态保持一致性。即一个进程对一个节点中的数据进行了更新后,同时其他节点中的数据副本实时也进行了更新。另一个进程读取其他节点的数据是最新版本。
    2.2. 可用性:是指在任何时刻系统提供的服务都是可用的。用户或者客户端发送一个请求,服务总是在规定的时间内返回请求结果。在规定的时间内,没有返回请求结果,则认为服务不可用。
    2.3. 分区容错性:系统在任何时刻发生网络故障,系统宕机,整个系统仍然能够对外提供可用性服务和一致性服务。这也说明了,在分布式系统设计过程中,更多的是考虑可用性和一致性平衡。

BASE理论

  1. BASE理论是ebay架构师提出的。主要是指基本可用(Basically Available),软状态(soft state)和最终一致性(Eventually consistent)三个词的缩写。核心思想是即使无法做到强一致性,但是每个应用都可以根据自身业务特点,采用合适的方式达到最终一致性。
  2. Base理论是依据大型的分布式系统架构设计设计经验得来,是一致性和可用性平衡结果。同时,也可以反映出在分布式系统设计中,主要考虑到PA两个特性,最终实现数据一致性。
  3. BASE理论三个要素:
    3.1. 基本可用:基本可用是指允许发生不可预知的故障,但是服务对外照常可用。只是损失部分可用性。
    3.2. 弱状态 :数据副本在整个服务运行期间,允许在某一个时刻(比如,数据复制)允许存在中间状态,但是最终数据的状态保持一致。在处于弱状态时,整个服务可用。
    3.3 最终一致性:在经过一定的时间后,所有数据副本的状态都已经保持一致。一致性的本质就是要保证数据最终一致性。

小结

Base/CAP理论,在分布式系统建设中提供了一个大的原则和方向。具体的设计过程中,还需要根据不同的系统的业务特点,灵活去设计,考虑的侧重点不同。