CAP与BASE理论简单了解

CAP理论

一致性(Consistency):所有节点访问同一份最新的数据副本

可用性(Availability):非故障的节点在合理的时间内返回合理的响应

分区容错性(Partition tolerance) : 分布式系统出现网络分区的时候,仍然能够对外提供服务

网络分区

分布式系统中,多个节点之前的网络本来是连通的,但是因为某些故障(比如部分节点网络出了问题)某些节点之间不连通了,整个网络就分成了几块区域,这就叫网络分区。

不是所谓的“3选2”

当发生网络分区P时,要继续服务的话 C和A两个只能保证一个,只有决定了P之后才有C和A的选择,所以P是必须要实现的

应用代表:

  1. ZooKeeper 保证的是 CP。
  2. Eureka 保证的则是 AP。
  3. Nacos 不仅支持 CP 也支持 AP。

BASE理论

BASEBasically Available(基本可用)Soft-state(软状态)Eventually Consistent(最终一致性) 三个短语的缩写

  1. 基本可用性 : 分布式系统在出现不可预知故障的时候,允许损失部分可用性
    • 响应时间上的损失
    • 系统功能上的损失
  2. 软状态:软状态指允许系统中的数据存在中间状态(CAP 理论中的数据不一致),并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
  3. 最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。
    • 强一致性:系统写入什么就读出来什么
    • 弱一致性:不一定可以读取到最新写入的值,也不保证多少时间之后读取到的数据是最新的,只是会尽量保证某个时刻达到数据一致的状态。
    • 弱一致性的升级版,系统会保证在一定时间内达到数据一致的状态。

学习资料

CAP & BASE理论 | JavaGuide

你可能感兴趣的:(分布式,分布式,java)