一、背景
Base理论的核心思想是最终一致性,即使无法做到强一致性(Strong Consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual Consistency)。
二、什么是BASE理论?
BASE理论指的是:
- 基本可用(Basically Available)
- 软状态(Soft State)
- 最终一致性(Eventual Consistency)
1、基本可用
基本可用指的是分布式系统中在出现不可预见的故障时,允许损失部分可用性(不代表系统不可用),保证核心功能可用。
比如:
- 响应时间上的损失:搜索功能一般是毫秒级别返回,但由于出现故障,导致一两秒才返回
- 系统功能上的损失:在秒杀系统中,由于突增流量过大,为了保护系统,部分用户会由于限流策略被引导到一个降级页面
2、软状态
软状态指允许系统中的数据存在中间状态,并认为该中间状态的存在并不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延迟。
比如:有个耗时的定时任务创建时是init
状态,开始执行了修改状态为running
,等到执行完成再标记为finished
即可,这个就是中间状态的用处
相反的“硬状态”就类似ACID中的原子性,要求多个节点的数据副本都是一致的,强调数据的一致性。
3、最终一致性
最终一致性指所有的数据副本在一定之后,会达到一个一致的状态。(由于存在软状态,所以并不用保证实时一致性)。