【Java高级工程师蜕变之路】053 分布式理论之BASE定理
BASE定理
CAP不可能同时满足,但是分区容错性对于分布式系统来说,是必须的。如果能够同时满足CAP就好了,于是出现了BASE理论。
BASE:全称Basically Availability(基本可用),Soft State(软状态),和Eventually Consistency(最终一致性),三个短语的缩写。
BASE定理是对CAP中一致性和可用性权衡的结果,来源于对大型互联网分布式实践的总结,是基于CAP定理逐步演化而来。
核心思想是:即使无法做到强一致性(Strong Consistency),但是每个应用可以根据自身的特点,采取适当的方式让系统达到最终一致性(Eventually Consistency)。
-
Basically Availability(基本可用)
什么是基本可用?就是相对于正常系统而言,系统虽然出现了不可预知的故障,但是还是能用。
-
响应时间上的损失:正常情况下的搜索引擎在0.5秒给出搜索结果,基本可用的搜索引擎在1秒给出搜索结果
-
功能上的损失:在电商网站上,正常情况下,用户可以完成每一笔订单,但是,在大促销期间,为了保证购物系统的稳定,部分消费者会被引导到一个降级页面
-
-
Soft State(软状态)
什么是软状态?对于原子性而言,要求多个节点的副本数据是一致的,这是一种硬状态。
软状态指的是:允许系统中的数据存在中间状态,并认为该状态不会影响系统的整体可用性。
就是允许系统在多个不同节点的数据副本存在数据延迟。
-
(Eventually Consistency)最终一致性
软状态不可能一致持续,必须有个期限。
在期限过后,应当保证所有副本的数据一致性。从而达到数据的最终一致性。
时间期限取决于网络延迟,系统负载,数据复制方案设计等因素。