base理论其实是CAP理论中AP模式的一种延伸,虽然不能保证强一致性,但是应用可以采取适当的方式达到最终一致性。
包括:基本可用、软状态、最终一致性三个原则:
-
基本可用(Basically Available): 不需要达到特别高的可用性,根据业务特点,实现基本可用即可。比如并发量特别大时,可以适当进行服务降级。比如随机丢弃部分请求,比如返回系统繁忙,让用户等待后重试。
常见方式:
响应时间上的损失:等待时间变长;
系统功能上的损失:降级; -
软状态(soft state):针对一致性说的,比如MySQL集群,数据写入主库后,不用非得同时同步到从库才结束,可以先记录下来这个操作,记录进MQ,后续异步同步进MySQL从库。后续请求从从库读取到的数据可能短时间还是修改之前的。
这里的软状态指的是,允许数据库达到最终一致之前的中间状态存在。 -
最终一致性(Eventual Consistency):只需最后达到一致性即可。
base理论强调的是,根据应用自身的特点,采取适当的原则。如果你不要求强一致性,可以采取软状态,实现最终一致性即可。如果你允许一定程度的可用性损失,可以采用基本可用的原则。