分布式系统CAP理论及证明

定理描述

伴随着互联网业务的快速发展,平台DAU直线上升,现在的大型互联网公司的后端系统多半都是分布式架构,如果说到分布式架构就一定要清楚CAP理论,今天就对这个理论做一个详细的描述以及对理论进行证明。
所谓的CAP理论即就是保证后端系统的一致性、可用性、以及分区容错。
Consistency 一致性,完善的分布式系统要保证数据的一致性,即同一时刻不论再各个对应的分布式子系统架构中都要保证对应的数据具有一致性特点。服务器设计时需要考虑如何做到整个后端系统中,所有数据如何分散到各个子系统中。
Availability 可用性,因为后端系统如果是分布式架构体统,每个端上的连接可能会访问到不同的子系统中,这个时候需要考虑到对应的每一个系统的可用性,能让对应的端上连接完成相关的数据请求,不会出现延迟卡顿,影响用户体验。
Partition Tolerance 分区容错,这个也是分布式系统的核心所在,能将后端的系统进行对应的扩充,即使某一个节点出问题,也可以通过其他节点进行数据访问。从端上来看整个后端就是一个整体架构,实际上服务端的设计会有多个子系统,保证即使个别子系统出现故障也可以继续使用。
分布式架构中 CAP理论永远成立,就是CAP中永远只能实现其中的2点,不可能三点都实现。
即CA CP AP。

定理证明

比如我们设计一个网站实现抢购功能,来证明CAP定理。
抢购后端系统采用分布式系统设计,因为分布式系统必然要支持分区容错,所以理论上我们默认的肯定会支持CAP理论中的P,不然也就不是分布式系统了,所以我们只需要证明C与A是否能同时存在,也就是是否可以保持后端系统的一致性与可用性。
CAP理论中的一致性是强调后端数据的一致性,可用性则是针对后端系统提供的服务可用性,好比现在商城里面有100台手机进行抢购活动,各个用户再不同的地域DNS解析到不同的机房,也就是各个用户会访问不同的分布式系统,数据一致性则体现在用户不论从哪个系统访问都能保证所存剩余的手机数量是一致的,可用性则体现在用户所处不同的系统都能进行抢购活动参加,即服务对外提供正常使用。因为分布式系统都是跨网络的,所以必然考虑极端情况,比如AB两个机房的数据要进行同步,如果这个时候因为网络问题导致AB机房数据没有同步,即数据一致性不成立,我们就需要对外提供服务的可用性禁止功能,等到数据一致了再恢复服务功能,这样一来当我们为了保证实现C的一致性时候我们就需要牺牲A的可用性,另外一种方式如果我们这个时候对外提供服务,但是因为数据不同步所以我们就相当于保证了A的可用性,缺牺牲了数据同步的一致性。所以C与A永远不可能同时成立。

解决CAP问题

通常互联网企业会在C与A之间进行权衡,一般都会选择保证服务可用性,然后数据一致性延迟校正,我们只要保证数据再最终一致性即可,所以就会出现我们抢购的时候明明抢的时候还有手机可是下单的时候就失败了,火车票也是一样的方式。

补充base理论

base理论就是针对cap做出适当的权衡,再一致性与可用性之间选择一个平衡点,通常会根据不同的业务做不同的取舍,base理论核心为保证数据最终一致性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值