5.2 Base理论
分布式系统最多只能同时满足CAP理论中的两个特性。在实际场景中,大部分分布式系统会采用AP方式,即舍弃一致性,保证可用性和分区容忍性。但是通常情况下还是要保证一致性,这种一致性与CAP中描述的一致性有所区别:CAP中的一致性要求的是强一致性,即任何时间读取任意节点的数据都必须一致,而这里的一致性指的是最终一致性,允许在一段时间内每个节点的数据不一致,但经过一段时间后,每个节点的数据达到一致。
1.Base理论概述
Base理论是对CAP理论中AP的一个扩展,它通过牺牲强一致性来获得可用性。Base理论中的Base是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually Consistent)的缩写。当系统出现故障时,Base理论允许部分数据不可用,但是会保证核心功能可用;允许数据在一段时间内不一致,但是经过一段时间,数据最终是一致的。符合Base理论的事务可以称为柔性事务。
2.基本可用
基本可用是指分布式系统出现故障时,允许其损失系统的部分可用性,比如响应时间或者功能上的损失,但是要保证系统基本可用。例如在电商业务场景中,添加购物车和下单功能出现故障时,商品浏览功能仍然可用。
3.软状态
软状态是指允许系统中存在中间状态,这些中间状态不会影响系统的整体可用性,只是允许系统各个节点之间的数据同步存在延迟。例如在电商业务场景中,订单中的“支付中”“退款中”等状态就是中间状态,当达到一段时间后,就会变成“支付成功”或者“退款成功”的状态。
4.最终一致性
最终一致性是指系统中各个节点的数据副本经过一段时间的同步,最终能够达到一致的状态。最终一致性需要保证数据经过一段时间的同步达到一致,并不要求各个节点的数据保持实时一致。例如在电商业务场景中,订单中的“支付中”“退款中”等状态,最终会变成“支付成功”“退款成功”的状态,经过一段时间的延迟,能够使得订单中的状态与最终的交易结果一致。