CAP  定理指的是在一个分布式系统中,一致性  Consistency 、可用性  Availability 、分区容  
 
 错性  Partition tolerance ,三者不可兼得。  
 
   一致性( C ):分布式系统中多个主机之间是否能够保持数据一致的特性。即,当系统数  
 
 据发生更新操作后,各个主机中的数据仍然处于一致的状态。  
 
   可用性( A ):系统提供的服务必须一直处于可用的状态,即对于用户的每一个请求,系  
 
 统总是可以在有限的时间内对用户做出响应。  
 
   分区容错性( P ):分布式系统在遇到任何网络分区故障时,仍能够保证对外提供满足一  
 
 致性和可用性的服务。  
 
 
 
 CAP  定理的内容是:对于分布式系统,网络环境相对是不可控的,出现网络分区是不可  
  避免的,因此系统必须具备分区容错性。但系统不能同时保证一致性与可用性。即要么  CP ,  
  要么  AP 。  
      BASE  理论  
  BASE  是  Basically Available (基本可用)、 Soft state (软状态)和  Eventually consistent (最  
  终一致性)三个短语的简写, BASE  是对  CAP  中一致性和可用性权衡的结果,其来源于对大  
  规模互联网系统分布式实践的结论,是基于  CAP  定理逐步演化而来的。  
  BASE  理论的核心思想是:即使无法做到强一致性,但每个系统都可以根据自身的业务  
  特点,采用适当的方式来使系统达到最终一致性。  
  ( 1 ) 基本可用  
  基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。  
  ( 2 ) 软状态  
  软状态,是指允许系统数据存在的中间状态,并认为该中间状态的存在不会影响系统的  
  整体可用性,即允许系统主机间进行数据同步的过程存在一定延时。软状态,其实就是一种  
  灰度状态,过渡状态。  
  ( 3 ) 最终一致性  
  最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到  
  一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需  
  要保证系统数据的实时一致性。 
        Zookeeper  与  CP  
  Zookeeper  遵循的是  CP  模式,即保证了一致性,但牺牲了可用性。  
  当  Leader  节点中的数据发生了变化后,在  Follower  还没有同步完成之前,整个  Zookeeper  
  集群是不对外提供服务的。如果此时有客户端来访问数据,则客户端会因访问超时而发生重  
  试。不过,由于  Leader  的选举非常快,所以这种重试对于用户来说几乎是感知不到的。所  
  以说, Zookeeper  保证了一致性,但牺牲了可用性。  
      Consul  与  CP  
  Consul  遵循的是  CP  模式,即保证了一致性,但牺牲了可用性。  
      Redis  与  CAP  
  Redis  遵循的是  AP  模式,即保证了可用性,但牺牲了一致性。 
       Eureka  与  CAP  
  Eureka  遵循的是  AP  模式,即保证了可用性,但牺牲了一致性。  
      Nacos  与  CAP  
  Nacos  在做注册中心时,默认是  AP  的。但其也支持  CP  模式,但需要用户提交请求进行  
  转换。