45

CAP定理与BASE理论

 5 years ago
source link: https://www.tuicool.com/articles/vyQz2m7
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

CAP定理与BASE理论

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

CAP 权衡

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

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

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

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

BASE 理论

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

  • 基本可用(Basically Available) : 基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
  • 软状态(Soft State) : 软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。MySQL Replication 的异步复制也是一种体现。
  • 最终一致性(Eventual Consistency) : 最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

ACID 和 BASE 的区别与联系

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

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


Recommend

  • 56
    • www.ruanyifeng.com 6 years ago
    • Cache

    CAP 定理的含义

    分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 本文介绍该定理。它其...

  • 20
    • 微信 mp.weixin.qq.com 6 years ago
    • Cache

    CAP 定理图解

    CAP定理是分布系统中的一个基本定理,它指出任何分布系统最多可以具有以下三个属性中的两个。 一致性 (Consistency) 可用性 (Availability)   分区容错性 (Part...

  • 56
    • www.tuicool.com 5 years ago
    • Cache

    图解CAP定理

    CAP 定理是分布式系统中的一个重要的基本定理,指出任何分布式系统最多只能具有以下三个属性中的其中两个: Consistency(一致性) Availability(可用性) Partition tolerance...

  • 25
    • www.cnblogs.com 4 years ago
    • Cache

    架构师都该懂的 CAP 定理

    面对可能出现的网络延迟,不可预估的请求流量等情况,设计一个分布式系统,我们通常围绕系统高可用,数据一致性的目标去规划和实现,想要完全实...

  • 7
    • www.wencst.com 3 years ago
    • Cache

    架构设计之CAP定理

    架构设计之CAP定理 作者: wencst 分类: 架构设计 发布时间: 2019-07-05 09:50 阅读: 2,570 次 ...

  • 6
    • mingzhi198.github.io 3 years ago
    • Cache

    分布式: CAP 定理

    Statement This article is my study notes about distributed systems. Please refer to the original work for more details and indicate the source for reprinting. 1. 什么是CAP定理

  • 6

    从分布式一致性谈到 CAP 理论、BASE 理论 March 20, 2019 in CAP

  • 6

    用CAP定理解释成长型组织的大难题 - Nir 有人曾经告诉...

  • 4
    • www.itwork.club 2 years ago
    • Cache

    CAP 理论与BASE 理论

    CAP 理论与BASE 理论漂洋过海来看你IT俱乐部-码出人生CAP 理论与BASE 理论Oct 12, 2022

  • 6

    1.什么是事务但是在这之前要先知道什么是事务。什么是事务?举个生活中的例子:你去...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK