美文网首页
分布式理论之CAP&BASE理论

分布式理论之CAP&BASE理论

作者: 但时间也偷换概念 | 来源:发表于2019-11-20 17:54 被阅读0次

CAP理论

2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。

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

一致性(Consistency)

一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。

可用性(Availability)

可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。

分区容错性(Partition tolerance)

分区容错性指“the system continues to operate despite arbitrary message loss or failure of part of the system”,即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

BASE理论

eBay的架构师Dan Pritchett源于对大规模分布式系统的实践总结,在ACM上发表文章提出BASE理论,BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。

BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。

基本可用(Basically Available)

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

软状态( Soft State)

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

最终一致性( Eventual Consistency)

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

ACID原则

ACID也是一种比较出名的描述一致性的原则,通常出现在分布式数据库领域。具体来说,ACID原则描述了分布式数据库需要满足的一致性需求,同时允许付出可用性的代价。

Atomicity(原子性)

每次操作是原子的,要么成功,要么不执行;

Consistency(一致性)

数据库的状态是一致的,无中间状态;

Isolation(隔离性)

各种操作彼此之间互相不影响;

Durability(持久性)

状态的改变是持久的,不会失效。

ACID和BASE的区别与联系

ACID是传统数据库常用的设计理念,追求强一致性模型。

BASE支持的是大型分布式系统,牺牲掉对一致性的约束(但实现最终一致性),来换取一定的可用性。

ACID和BASE代表了两种截然相反的设计哲学。

在英文中,ACID和BASE分别是“酸”和“碱”,看似对立,实则是分别对CAP三特性的不同取舍。在分布式系统设计的场景中,系统组件对一致性要求是不同的,因此ACID和BASE又会结合使用。

CAP理论概述

一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance)这三项中的两项。

image.png

CAP权衡

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

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

对于涉及到钱财这样不能有一丝让步的场景,C必须保证。网络发生故障宁可停止服务,这是保证CA,舍弃P。貌似这几年国内银行业发生了不下10起事故,但影响面不大,报到也不多,广大群众知道的少。还有一种是保证CP,舍弃A。例如网络故障事只读不写。

孰优孰略,没有定论,只能根据场景定夺,适合的才是最好的。

参考链接:

CAP和BASE理论

分布式系统的CAP理论

知乎用户:CAP理论中的P到底是个什么意思?

相关文章

  • 分布式理论之CAP&BASE理论

    CAP理论 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。...

  • 架构师进阶实战随堂笔记三

    场景三分布式系统中的CAP原则 CAP&Base 理论介绍与案例分享 CAP理论介绍 CAP原理 一致性(Cons...

  • 分布式理论之CAP&BASE

    分布式系统架构 分布式系统概念 通常的理解分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构...

  • 【学习】Spring微服务

    分布式理论 分布式基础理论微服务基础理论分布式事务分布式一致性分布式缓存分布式锁分布式Session负载均衡 Sp...

  • 三分钟分布式CAP理论就这么复杂

    cap 分布式系统架构理论,定义了三种指标,理论说我们最多只能满足两个。 分布式系统 首先我们这个理论所说的分布式...

  • 谈谈CAP理论

    CAP理论是分布式计算领域公认的一个定理。也是深深影响着分布式发展的一个经典理论。 CAP理论告诉我们:一个分布式...

  • 分布式事务解决方案

    1 如何进行分布式事务控制? CAP理论是分布式事务处理的理论基础,了解了CAP理论有助于我们研究分布式事务的处理...

  • Base理论和CAP理论

    CAP理论和 BASE理论CAP是理论模型,BASE才是分布式落地方案 C 讲的是强一致性,也就是分布式系统中,集...

  • 分布式事务解决方案-什么是CAP理论

    业界对解决分布式事务的方法总结了一套理论,叫CAP理论,学习CAP理论指导我们确定解决分布式事务的目标。 1 理解...

  • ZooKeeper(六)-- CAP和BASE理论、ZAB协议

    一、CAP理论和BASE理论 1.CAP理论 CAP理论,指的是在一个分布式系统中,不可能同时满足Consiste...

网友评论

      本文标题:分布式理论之CAP&BASE理论

      本文链接:https://www.haomeiwen.com/subject/jixaictx.html