分布式技术栈–CAP理想到BASE现实

引言

分布式技术是互联网的基石。特别是对于亿级访问网站,单机后台远不能满足需求,分布式技术提供了多机、多级负载均衡和水平伸缩的技术可能。但是分布式系统相对于单机系统,业务交互变得更加复杂和不确定性。

1 CAP理想

分布式面临的问题域,归纳起来主要分为三点:一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)。这也是分布式需要解决的三个问题,以首字母开头,又称CAP理论。

1.1 一致性

数据在一个副本更新了,其他副本都要得到跟新。主要可分为强一致性和弱一致性,其中CAP理论中的一致性是指强一致性。
强一致性
强一致性是指对数据的任何一个副本的修改,都会立即同步到整个系统,后续请求都是最新数据;如同操作同进程数据的一致性。强一致性对并发和可用性提出挑战,基本很难同时满足强一致性、可用性和分区容错。
弱一致性
弱一致性是对数据的副本的修改,不确保同步到整个系统,后续请求未必是最新数据。就是无需一致性,这是最容易实现的。

1.2 可用性

系统提供的服务一直处于可服务状态,每次请求都能获取到非错的响应。

1.3 分区容错性

当系统中有节点因网络原因无法通信时,系统依然可以继续运行。

1.4 CAP权衡

仔细分析CAP理论,在现实中是无法同时三者兼顾的,所以通常三者舍一存二。
CA without P
同时要求强一致性和可用性。但是这时就不再是分布式系统,而是单机系统了!所以分布式是不可能不考虑分区容错。
CP without A
牺牲可用性、同时满足强一致和分区容错是可行的,很多分布式关系数据库的分布式事务就是这种。
AP wihtout C
牺牲强一致性、同时满足高可用和分区容错也是可行的,很多NoSQL就是这种模型。

2 BASE现实

由于CAP无法同时满足,理想丰满、现实骨干。于是BASE原则成了CAP的中庸选择,即基本可用(Basically Availble)、软状态/柔性事务(Soft-state)、最终一致性(Eventual Consistency)。

2.1 基本可用

分布式系统在出现不可预知故障的时候,允许损失部分可用性。
相对于CAP要求的系统可用,这里强调的是允许部分不可用。例如当某个区域的服务器宕机后,允许这个区域的用户出现不可用,但其他大部分区域是可用的,在CAP理论中这是不允许的。又如电商网站在一些节日大促购物高峰的时候,为确保购物系统的稳定性,部分消费者可能会被引导到一个降级页面(例如没有商品评论数据的页面)。

2.2 软状态/柔性事务

允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
软状态是一种弱一致性要求。例如分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现;此外,某些时刻副本数目可能大于或小于三也是软状态的表现。

2.3 最终一致性

系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
最终一致性是弱一致性的特例、强弱一致性的中庸结果;也是软状态的终极目标。例如分布式存储中的副本数虽然某个时刻有波动,但是最终会达到稳定数目状态。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值