CAP学习笔记

作者: 良辰美景TT | 来源:发表于2018-08-28 14:51 被阅读0次

  定义:在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。CAP关注的是分布式数据读写

  • 一致性(Consistence):对某个指定的客户端来说,读操作保证能够返回最新的写操作结果。
  • 可用性(Availability): 非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。
  • 分区容错性(Partition Tolerance:当出现网络分区后,系统能够继续“履行职责”。

  虽然 CAP 理论定义是三个要素中只能取两个,但放到分布式环境下来思考,我们会发现必须选择 P(分区容忍)要素,因为网络本身无法做到 100% 可靠,有可能出故障,所以分区是一个必然的现象。如果我们选择了 CA 而放弃了 P,那么当发生分区现象时,为了保证 C,系统需要禁止写入,当有写入请求时,系统返回 error(例如,当前系统不允许写入),这又和 A 冲突了,因为 A 要求返回 no error 和 no timeout。因此,分布式系统理论上不可能选择 CA 架构,只能选择 CP 或者 AP 架构

CAP关键细节点

  • CAP关注的粒度是数据,而不是系统或者节点,所以在系统设计的时候应该将关注点放到数据上,具体数据具体分析。
  • CAP是忽略网络延时的,意味着CAP 理论中的 C 在实践中是不可能完美实现的。在需要强一致性的业务场景中,只能单点写入,其它节点备份。(这里只争对数据,系统还是可以设计成分布式的)
  • 正常运行的情况下,不存在CP或者AP的选择,可以同时满足CA。
  • CAP 理论的“牺牲”只是说在分区过程中我们无法保证 C 或者 A,但并不意味着什么都不做。因为在系统整个运行周期中,大部分时间都是正常的,发生分区现象的时间并不长。分区期间放弃 C 或者 A,并不意味着永远放弃 C 和 A,我们可以在分区期间进行一些操作,从而让分区故障解决后,系统能够重新达到 CA 的状态。

相关文章

  • CAP学习笔记

      定义:在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性(Consist...

  • CAP理论和细节

    第74篇 极客时间《从0开始学架构》课程笔记。 什么是CAP? CAP是指CAP 定理(CAP theorem),...

  • CAP审计课程学习笔记

    从事财务信息化及财务工作已经有十多年了,配合会计师事务所和审计署进行审计工作也有十多年了,我就对审计工作很好奇,最...

  • 分布式系统-CAP理论

    CAP基本概念 CAP理论作为分布式系统的基石,应该是每个入门分布式系统的人都应该学习的内容。 CAP理论是200...

  • CAP定理(CAP theorem)

    CAP定理(CAP theorem)在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理...

  • python—OpenCV2中 cv2.VideoCapture

    1、cap = cv2.VideoCapture(0) VideoCapture()中参数是0,表示打开笔记本的内...

  • CAP到底是什么鬼?

    CAP到底是什么鬼? CAP理论 解释CAP原理 加深理解 蚂蚁金服OceanBase 据说已经打破CAP?? ...

  • ACID,BASE和CAP理论学习笔记

    前言 计算机的前沿技术都来自于计算机科学大佬的理论知识,在探索集群分布式的道路上不可避免的就会和一些理论知识打交道...

  • Desired Capabilities

    DesiredCapabilities cap = new DesiredCapabilities(); cap....

  • 分布式理论:CAP是三选二吗?

    CAP是什么?CAP理论,被戏称为[帽子理论]。CAP理论由Eric Brewer在ACM研讨会上提出,而后CAP...

网友评论

    本文标题:CAP学习笔记

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