什么是分布式BASE定理?
BASE是Basically Available(基本可用)
、Soft state(软状态)
和Eventually consistent(最终一致性)
三个短语的缩写。
BASE理论是eBay架构师提出的。
BASE定理来源:是CAP中一致性和可用性的权衡结果,它来自大规模互联网分布式系统的总结,是基于CAP定理逐步演化而来的。
BASE定理的核心思想:即使无法做到强一致性,但是每个应用可以根据自身的业务特定,采用合适的方式来达到最终一致性。
一、BASE定理的基本可用性
损失相应时间:CAP可用性的服务相应时间可能是10ms,而BASE基本可用性的相应时间1-2s,即允许损失部分可用性的(时间上的损失)
损失系统功能:BASE的基本可用性是允许某个服务出现故障时,采用服务降级等手段保证用户的体验性,即允许损失部分系统功能。
二、BASE定理的软状态
我们在之前学习过硬状态,指的就是ACID的原子性。
比如你要购买东西,下订单,付款,减库存,这三部都成功了才会给用户返回下单成功
什么是软状态?不要完全符合ACID的原子性,即允许系统在不同节点间副本同步的时候存在延时,
先把订单状态改成已支付成功,然后告诉用户已经成功了
剩下在异步发送mq消息通知库存服务减库存
即使消费失败,MQ消息也会重新发送(重试)。
三、BASE定理的最终一致性
它和强一致性不一样,强一致性读操作要么处于阻塞状态,要么读到的是最新的数据
最终一致性通常是异步完成的,读到的数据刚开始可能是旧数据,但是过一段时间后读到的就是最新的数据