CAP定理与BASE理论

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

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 又会结合使用。

CAP定理与BASE理论相关推荐

  1. 【分布式】1、CAP原则(CAP定理)、BASE理论

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  2. CAP 定理、 BASE 理论

    CAP 定理 2000 年 7 月,加州大学伯克利分校的 Eric Brewer 教授在 ACM PODC 会议上提出 CAP 猜想.2年后,麻省理工学院的 Seth Gilbert 和 Nancy ...

  3. java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(三:注册中心、补充CAP定理、BASE 理论)~整起

    架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(一:总览篇) 网关开了个头 你请求来了,我网关把你拦截住,验明正身,加以控制,协助你调用服务,完成请求的调用.但是这个过程中,为了解耦和或者 ...

  4. 关于分布式存储系统中-CAP原则(CAP定理)与BASE理论比较

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  5. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式

    文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...

  6. 深入理解分布式、微服务中CAP定律和BASE理论

    一.背景 随着互联网的快速蔓延,各种传统项目(单体应用的架构)已经不能够满足当前各种复杂的需求场景,都逐渐向分布式服务.微服务做转换,而如今分布式.微服务架构已经普遍存在互联网公司的项目中,像大型电商 ...

  7. 分布式系统理论 - CAP定理和BASE理论

    分布式系统理论 - CAP定理和BASE理论 分布式系统理论 - CAP定理和BASE理论 一.前言 二.CAP定理 2.1.概述 2.2.一致性(C:Consistency) 2.3.可用性(A:A ...

  8. CAP定理和BASE理论

    CAP定理和BASE理论 一.CAP定理是什么? 二.BASE理论是什么? 一.CAP定理是什么? CAP定理:在一个分布式系统中,最多只能同时满足一致性.可用性和分区容错性这三项中的两项. C:一致 ...

  9. CAP 原则与 BASE 理论

    导航 引言 一.CAP 原则 1.1 Consistency 一致性 1.2 Available 可用性 1.3 Partition tolerance 分区容错性 1.4 CAP 的矛盾 1.5 C ...

最新文章

  1. 脚本实现用户登录显示信息
  2. 判断一个变量是不是指针
  3. 【OpenCV3】级联分类器训练——traincascade快速使用详解
  4. RouteOS的DHCP服务器配置
  5. java三级考试题库_JAVA题库:格林模拟试题三(下)
  6. springboot创建多个对象
  7. airpods2怎么查正品 ios11系统_拼多多AirPods2开箱评测,4种办法教你验真假,10个AirPods技巧教你玩...
  8. c语言:malloc函数的简介
  9. AutoCAD 2021 macOS Big Sur 11版 注册机无法打开?注册机怎么使用?
  10. Android应用性能优化(3)---加快应用启动速度
  11. python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?
  12. 通过system用户操作oracle数据库相关
  13. 老人 android 游戏,其乐融融 -- 给父母玩的游戏 #iOS #Android
  14. EasyNVR摄像机网页无插件直播方案H5前端构建之:使用BootstrapPagination以分页形式展示数据信息...
  15. 潘正磊: 做最好、最美的你
  16. 如何科学进行用户分析?六大方法论了解一下!
  17. python安装包提示error: option --single-version-externally-managed not recognized
  18. 针对win2003服务器的恶意代码攻击
  19. input type=button与asp:button的区别,以及runat=server的作用
  20. uniapp用canvas实现分享海报

热门文章

  1. 淘宝4位数七段显示器模块 (74HC595)
  2. Java Condition类使用及分析
  3. 现代希腊语字母表(待续)
  4. 时空之轮Android手柄,经典角色扮演类游戏 Android时空之轮
  5. Unity—实现通过按键控制2D游戏物体的移动
  6. 稳定渐进稳定,一致有界一致最终有界
  7. 知识产权创造美好生活
  8. 手机安装ubuntu
  9. 利用OpenCV检测图像中的多个水果
  10. 电磁场知识回顾——重要方程,定理