再说说BASE理论

再看BASE理论之前,轻先移步大名鼎鼎的Cap理论究竟是什么了解一下什么是CAP理论。正因为CAP理论存在一些局限性,eBay的架构师Dan Pritchett基于他在大规模分布式系统中的实践经验,总结出了BASE理论。BASE理论是对CAP理论的进一步扩展,其核心思想是,即便无法实现强一致性(Strong Consistency),应用程序也可以通过适当的方法达到最终一致性(Eventual Consistency)。

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

1. 数据一致性分类

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

1.1 强一致性

数据更新操作完成之后,数据立即生效,后续的所有访问当中都能得到最新的结果

1.2 弱一致性

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

1.3 最终一致性

数据更新操作完成之后,能容忍更新后一段时间内无法访问到最新数据,不需要实时保证系统数据的强一致性,但是经过一段时间的同步之后,最终可以达到一个一致的状态。所以,最终一致性可以看作是弱一致性的一个特例
而在CAP理论中的C指的是强一致性,所以要分析什么样的系统适合AP,什么样的系统适合CP,其实就是在强一致性和可用性之间做权衡,根据业务情况,看那些业务能够容忍最终一致性,而很在乎用户体验,这样的业务就适合AP。而对于强一致性要求高的业务则适合用CP

2. 什么是BASE理论

Base理论是由 eBay 的架构师 Dan Pritchett 在 ACM 上发表的一套分布式设计理论,BASE 理论全称是** "Basically Available, Soft state, Eventual consistency"**,即 "基本可用,软状态,最终一致性"。它是由CAP 定理逐步演化而来的,是对 CAP 中一致性 C 和可用性 A 权衡的结果

2. 基本可用(Basically Available)

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

2.1.1 怎么理解部分功能可用:

  1. 响应性能变弱
    • 比如正常情况下请求响应为0.3s,但是出现了某个故障之后,虽然还能正常响应,但是响应时长变为了2s

  2. 系统功能有损
    • 比如商城双十一活动时,评论模块出现故障,但不会影响交易、商品等核心模块的流程使用

2.2 软状态(Soft state)

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

2.3 最终一致性(Eventual Consistency)

系统不要求数据实时地达到一致性,而是允许数据在一段时间后最终达到一致状态。这意味着在经过一定的时间之后,所有副本的数据会最终到达一致的状态

2.4 Base理论的核心思想

既然在分布式系统中分区容错性我们无法回避,而根据CAP理论,我们要么选择AP模型,要么选择CP模型。但是在很多的场景中,尤其是对可以用性要求高的场景往往既需要可用性,又想保证一致性,这里就出现了矛盾。所以这里可以在选择可用性的同时,弱化强一致性,但是并不是永远放弃一致性,在分区故障恢复后,根据各自的业务特点,经过一段时间系统应该达到最终一致性。而系统中一部分不一致时,系统仍需要保持系统整体“主要可用”,也就是基本可用。其实Base理论可以理解为:分区容错性 + 基本可用性 + 最终一致性, 其实就是对CAP理论的一种延伸

图1

交流学习

如果您觉得文章有帮助,请帮忙转发给更多好友,或关注公众号:IT杨秀才,持续更新更多硬核文章,一起聊聊互联网网那些事儿!

公众号二维码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值