BASE 是 Basically Available(基本可用)、Soft state(软状态)和
Eventually consistent(最终一致性)三个短语的简写。是 CAP 定理对于一
致性与可用性权衡的结果。
BASE 理论的核心思想是:即使无法做到强一致性,但每个系统都可以根据自身的业务
特点,采用适当的方式来使系统达到最终一致性。
- (1) 基本可用
基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。- 响应时间的损失:
- 功能上的损失:
- (2) 软状态
- 软状态,是指允许系统数据存在的中间状态,并认为该中间状态的存在不会影响系统的
整体可用性,即允许系统主机间进行数据同步的过程存在一定延时。软状态,其实就是一种
灰度状态,过渡状态。
- 软状态,是指允许系统数据存在的中间状态,并认为该中间状态的存在不会影响系统的
- (3) 最终一致性
- 最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到
一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需
要实时保证系统数据的强一致性。
- 最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到
举例
1.6.3 ZK 与 CP
zk 遵循的是 CP 原则,即保证了一致性,但牺牲了可用性。体现在哪里呢?
当 Leader 宕机后,zk 集群会马上进行新的 Leader 的选举。但选举时长一般在 200 毫秒
内,最长不超过 60 秒,整个选举期间 zk 集群是不接受客户端的读写操作的,即 zk 集群是
处于瘫痪状态的。所以,其不满足可用性。
Eureka 保证了 AP,牺牲了 CP。即其保证了可用性,但无法保证一致性。
1.7zk 可能会存在脑裂
这里说的 zk 可能会引发脑裂,是指的在多机房部署中,若出现了网络连接问题,形成
多个分区,则可能会出现脑裂问题,可能会导致数据不一致。