Skip to content

Base理论

分布式系统最多只能同时满足 CAP 理论中的两个特性。
在实际场景中,大部分分布式系统会采用 AP 方式,即舍弃一致性,保证可用性和分区容忍性。
但是通常情况下还是要保证一致性,这种一致性与 CAP 中描述的一致性有所区别:
CAP 中的一致性要求的是强一致性,即任何时间读取任意节点的数据都必须一致,
而这里的一致性指的是最终一致性,允许在一段时间内每个节点的数据不一致,但经过一段时间后,每个节点的数据达到一致

Base 理论概述

Base 理论是对 CAP 理论中 AP 的一个扩展,它通过牺牲强一致性来获得可用性。
Base 理论中的 Base 是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually consistent)的缩写。
当系统出现故障时,Base 理论允许部分数据不可用,但是会保证核心功能可用;
允许数据在一段时间内不一致,但是经过一段时间,数据最终是一致的。
符合 Base 理论的事务可以称为柔性事务

基本可用

基本可用是指分布式系统出现故障时,允许其损失系统的部分可用性,比如响应时间或者功能上的损失,但是要保证系统基本可用。
例如在电商业务场景中,添加购物车和下单功能出现故障时,商品浏览功能仍然可用

软状态

软状态是指允许系统中存在中间状态,这些中间状态不会影响系统的整体可用性,只是允许系统各个节点之间的数据同步存在延迟。
例如在电商业务场景中,订单中的 “支付中”,"退款中" 等状态就是中间状态,当达到一段时间后,就会变成 "支付成功" 或者 "退款成功" 的状态

最终一致性

最终一致性是指系统中各个节点的数据副本经过一段时间的同步,最终能够达到一致的状态。
最终一致性需要保证数据经过一段时间的同步达到一致,并不要求各个节点的数据保持实时一致。
例如在电商业务场景中,订单中的 "支付中" "退款中" 等状态,最终会变成 "支付成功" "退款成功" 的状态,经过一段时间的延迟,能够使得订单中的状态与最终的交易结果一致