BASE理论
文章目录
Introduction
BASE是Basically Available、Soft state、Eventually consistent三个概念的缩写,由eBay的架构实Dan Pritchett提出,是对CAP的权衡结果,核心的思想就是:即使做不到强一致性,但是每个应用都可以根据自身的业务特点,采用适当的方式,保证系统达到最终一致性.
Basically Available
基本可用状态的意思就是说,分布式系统出现不可预知的故障的时候,允许损失部分可用性,但是系统还是可用,如下:
- 时延变长:例如发生部分故障,请求这部分故障节点之后重新请求其它节点,导致时延变高。
- 服务降级:典型的就是fallback策略
Soft state
之所以称为"Soft state",就是与硬状态相对比,软状态的意思是指允许分布式系统的数据存在中间状态,并且认为该状态的存在不会影响系统的整体可用性,允许数据同步有一定的延时.
Eventually consistent
最终一致性就是数据经过一定时间的同步,在整个分布式系统上数据是一致的,也就是说,经过一定时间,必须能够保证时间的同步.在我看来,这就是对CAP的最终权衡结果,就是弱C,弱一致性.
Extension
以下是最终一致性的拓展.
Causal consistency
因果一致性,即假设A更新数据并通知了B,那么B对数据的访问必须能够查看到最新的数据的值.而对于其它的进程,则没有这个限制.
Read your writes
读自己所写,即A更新数据之后,总是能够访问到更新过的最新值.
Session consistency
会话一致性,即首先限定X对系统的数据访问在一个会话当中, 除了"读己所写",还要保证这个写之后的读在同一个session中,而不是两个session.
Monotonic read consistency
单调读一致性,如果A从分布式系统中读到a1,那么之后的任何访问,都不应该返回比这个数据更老的数据.
Monotonic write consistency
单调写一致性,则同一个进程对分布式数据的写入的操作是顺序进行的.