==弱一致性==一般实现时最终一致性,允许开始时可能存在差异,但随着时间推移,最终数据保持一致
如果追求强一致性,那么势必会导致可用性下降。比如在Master-Slave的场景中,Master负责数据写入,然后分发给各个节点,所有节点都写入成功,才算写入,这样保证了强一致性,但是延迟也会随之增加,导致可用性降低。
BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。
BASE是指==基本可用==(Basically Available)、==软状态==( Soft State)、==最终一致性==( Eventual Consistency)。
基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
电商大促时,为了应对访问量激增,==部分用户可能会被引导到降级页面==,服务层也可能只提供降级服务,这就是损失部分可用性的体现。
软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
==分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现==。
最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态
最终一致性是弱一致性的一种特殊情况。