CAP定理与BASE理论

CAP定理

CAP理论为: 一个分布式系统最多只能通化市满足一致性(Consistency),可用性(Availability),和分区容错性(Partition tolerance)这三项中的两项。

一致性(Consistency): 一致性指,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。

一致性分为三种:

    强一致性:要么一起成功,要么一起失败。

    弱一致性:最终一致性

    顺序一致性:

可用性(Availability): 可用性指,即服务一直可用,而且是正常相应时间。

分区容错性(Partition tolearance): 分区容错性指,即分布式系统在遇到某节点或网络分区故障的时候(某一块区域的服务全部挂掉),任能对外提供满足一致性和可用性的服务(其他区域的服务来接入该区域的请求)。

CAP权衡

通过CAP理论,我们知道无法同时满足一致性,可用性,分区容错性这三个特征,那么要舍弃那个呢?

对于大多数互联网应用的场景,主机多,部署分散,而且现在的集群规模越来越大,所以节点故障,网络故障,而且要保证服务可用性高达N个9(999.999N%),既保证A和P,舍弃C(退而求其次保证最终一致性)。虽然某些地方会影响客户体验,但没达到造成用户流程的严重程度。

对于涉及到钱财这样不能有一丝让步的场景,C必须保证。网络发生故障宁可停止服务,这是保证CA,舍弃P。还有一种保证CP,舍弃A。例如网络故障时只读不写。

总之一句话:                                                                                                                                              CP系统:与钱有关的业务系统(金融系统)一定要满足强一致性。                                                  AP理论:与钱无关的系统则可以使用。

BASS理论

BASS理论是对CAP定理的延伸,核心思想是即使无法做到强一致性(CAP定理中的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。

基本可用(Basicall Available):基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,既保证核心模块可用即可。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供将及服务。这就损失部分可用性的体现。

软状态(Soft state): 软状态是指允许系统有中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的表现。MySQL Replication的异步复制也是一种体现。

最终一致性(Eventual Consistency): 最终一致性是指系统中的所有数据副本经过一定时间后,最终能达到一致的状态 。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊状态。


ACID和BASE的区别和联系

ACID是传统数据库常用的设计理念,追求强一致性模型。BASE支持的是大型分布式系统,提出牺牲强一致性保证高可用。

ACID和BASE代表了来个那种截然不同的设计哲学,在分布式系统设计场景中,系统组件对一致性的要求是不同的,因此ACID与BASE又会结合使用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容