分布式理论_BASE理论

118 阅读4分钟

BASE理论简介

由于CAP理论的局限性,eBay的架构师Dan Pritchett总结出了BASE理论。BASE理论是对CAP理论的进一步拓展,其核心思想是:即便无法实现强一致性(Strong Consistency),应用程序也可以通过适当的方法达到最终一致性(Eventual Consistency)。

BASE理论是一个更具有工程实践意义的理论,其弥补了CAP理论过于抽象的问题,同时也为AP系统提供了整体的工程实践思想。目前BASE理论已经成为分布式系统中的核心理论之一。

数据一致性分类

BASE理论对数据一致性做了一些更加细致的分类,从而对CAP理论作了进一步的拓展,数据一致性可以分为以下几类:

强一致性

数据写操作完成以后,数据立即生效,后续的所有访问都能得到最新结果。也可以称之为即时一致性。

弱一致性

数据写操作完成以后,不要求立即可以读取到最新写入的值,能够容忍更新发生之后,部分情况下无法访问到最新数据的情况。

最终一致性

数据写操作完成以后,能够容忍更新后一段时间内无法访问到最新的数据,不需要实时保证系统数据的强一致性,但是经过一段时间的同步以后,最终可以到达一个一致的状态。可以认为是弱一致性的一个特例。

在CAP理论中的C指的是强一致性,所以要分析什么样的系统适合AP、什么样的系统适合CP。其实就是在强一致性和可用性之间做权衡。根据业务情况判断是否能够容忍最终一致性。侧重于用户体验的业务适合AP,对强一致性要求高的业务则适合CP。

什么是BASE理论

BASE理论的全称是“Basically Available,Soft state,Evenual consistency”,即“基本可用,软状态,最终一致性”。其是由CAP理论逐步演化而来,是对CAP中一致性 C 和可用性 A 权衡的结果。

基本可用(Basically Available)

系统在遇到不可预知的故障时,允许损失部分可用性,就是说即使系统不能完全正常工作,但是仍然有部分功能可用。换句话说,系统可以提供部分服务,例如响应时间比平时长或者某些功能暂时不可用。

  • 如何理解部分功能可用:
    • 响应性能变弱:响应时间由正常情况下的300ms变为1000ms;
    • 系统功能受损:比如双十一活动时,系统评论模块出现故障,但不影响交易、商品等核心模块的流程使用;

软状态(Soft state)

指允许系统中的数据存在中间状态,这种状态可能是不一致的,但是这种中间状态的存在不会影响系统的整体可用性,因为数据在不同节点之间的同步可能有延迟。

最终一致性(Evenual consistency)

系统不要求数据实时地达到一致性,而是允许数据在一段时间以后达到一致性状态。这意味着在经过一段时间以后,所有节点地数据都会更新为最新数据。

BASE理论的核心思想:

既然分布式系统中的分区容错性我们没办法回避,根据CAP理论,我们只能选择 CP 或者 AP 架构。但是在很多场景中,尤其是对可用性要求较高的场景往往既需要可用性,又需要保证一致性。基于BASE理论,我们可以在选择可用性的同时,弱化一致性,但是不是彻底放弃一致性,在分区故障恢复以后,根据各自的业务特点,经过一段时间以后系统应该达到最终一致性。而系统中一部分不一致时,系统仍然需要保证“整体可用”,也就是基本可用。

所以BASE理论可以理解为:分区容错性 + 基本可用性 + 最终一致性。