CAP与BASE分布式理论

一、分布式理论

1.CAP理论

CAP理论是说对于分布式数据存储,最多只能同时满足一致性(C,Consistency)、可用性(A, Availability)、分区容忍性(P,Partition Tolerance)中的两者。

CAP 理论又叫 Brewer 理论,这是加州大学伯克利分校的埃里克 · 布鲁尔(Eric Brewer)教授,在 2000 年 7 月“ACM 分布式计算原理研讨会(PODC)”上提出的一个猜想。

然后到了 2002 年,麻省理工学院的赛斯 · 吉尔伯特(Seth Gilbert)和南希 · 林奇(Nancy Lynch)就以严谨的数学推理证明了这个 CAP 猜想。在这之后,CAP 理论就正式成为了分布式计算领域公认的著名定理。

1.一致性

是指对于每一次读操作,都能够读到最新写入的数据,且每个节点读取到的数据是一致的。

对于客户端来说,一致性指的是并发访问更新过的数据如何获取的问题。


从服务端来看,则是更新如何复制分布到整个节点,以保证数据最终一致。

从多个应用系统来看,是保证各个业务系统冗余的数据和主数据系统的数据一致性。

1.一致性级别

1、强一致性

这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大

2、弱一致性

这种一致性级别约束了系统在写入成功后,不承诺立即可以读到写入的值,也不承诺多久之后数据能够达到一致,但会尽可能地保证到某个时间级别(比如秒级别)后,数据能够达到一致状态

3、最终一致性

最终一致性是弱一致性的一个特例,系统会保证在一定时间内,能够达到一个数据一致的状态。这里之所以将最终一致性单独提出来,是因为它是弱一致性中非常推崇的一种一致性模型,也是业界在大型分布式系统的数据一致性上比较推崇的模型。

在实践中,多个系统要实现最终一致性的兜底解决办法多数是通过数据比对来实现的,如多个业务系统通过比对将生产者数据备份的大数据平台进行比对,从而实现各个业务系统的最终一致性。

2.可用性

可用性:是指对于每一次请求,都能够得到一个及时的、非错的响应。
系统能够很好的为用户服务,不出现用户访问服务时服务器不可用,或者访问超时等用户体验不好的情况。

3.分区容忍性

The system will continue to function when network partitions occur.

即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。

它跟趋向于单机模式的对比,如一台机器宕机了,其他机器一样能够提供同等的服务。但机器部署得越多,一致性和可用性就越难保证。

比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。

2. CAP的选型

当然,单纯只看这个概念的话,CAP 是比较抽象的,我还是事例场景来说明一下,这三种特性对分布式系统来说都意味着什么。

事例场景:Fenix's Bookstore 是一个在线书店。一份商品成功售出,需要确保以下三件事情被正确地处理:

1.用户的账号扣减相应的商品款项;

2.商品仓库中扣减库存,将商品标识为待配送状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值