美文网首页框架原理分布式程序小寨
分布式理论 —— CAP 定理

分布式理论 —— CAP 定理

作者: Djbfifjd | 来源:发表于2019-05-29 21:38 被阅读94次

一、什么是 CAP 定理

2000 年的时候,Eric Brewer 教授提出了 CAP 猜想,2年后,被 Seth Gilbert 和 Nancy Lynch 从理论上证明了猜想的可能性,从此,CAP 理论正式在学术上成为了分布式计算领域的公认定理。并深深的影响了分布式计算的发展。

CAP 理论告诉我们,一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A: Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中的2个。

什么是分区?
在分布式系统中,不同的节点分布在不同的子网络中,由于一些特殊的原因,这些子节点之间出现了网络不通的状态,但他们的内部子网络是正常的。从而导致了整个系统的环境被切分成了若干个孤立的区域。这就是分区。

二、为什么只能 3 选 2?

CAP

能不能同时满足这三个条件?假设有一个系统如下:

整个系统由两个节点配合组成,之间通过网络通信,当节点 A 进行更新数据库操作的时候,需要同时更新节点 B 的数据库(这是一个原子的操作)。

上面这个系统怎么满足 CAP 呢?

  • C:当节点A更新的时候,节点B也要更新。
  • A:必须保证两个节点都是可用的。
  • P:当节点 A、B 出现了网络分区,必须保证对外可用。

可见,根本完成不了,只要出现了网络分区,A 就无法满足,因为节点 A 根本连接不上节点 B。如果强行满足 C 原子性,就必须停止服务运行,从而放弃可用性 C。

所以,最多满足两个条件:

三、能不能解决 3 选 2 的问题?

难道真的没有办法解决这个问题吗?CAP 理论已经提出了 13 年,也许可以做些改变。仔细想想,分区是百分之百出现的吗?如果不出现分区,那么就能够同时满足 CAP。如果出现了分区,可以根据策略进行调整。比如 C 不必使用那么强的一致性,可以先将数据存起来,稍后再更新,实现所谓的 “最终一致性”。

这个思路又是一个庞大的问题,也引出了第二个理论 Base 理论。

相关文章

  • 架构理论学习之分布式系统理论CAP

    分布式系统理论CAP CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem)...

  • CAP理论

    CAP理论 CAP理论又称布鲁尔定理( Brewer's theorem ), 是分布式计算领域公认的一个定理.C...

  • CAP理论

    CAP分布式理论 2002年CAP理论正式成为分布式计算领域的公认定理 CAP指一致性(Consisitency)...

  • 面试篇:分布式事务

    1. 分布式理论 1.1 CAP定理 CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 ...

  • 通过NAS对分布式系统CAP理论的理解

    通过NAS对分布式系统CAP理论的理解 CAP原则又称CAP定理,指的是在一个分布式系统中:Consistency...

  • 谈谈CAP理论

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

  • 分布式理论(二)——Base 理论

    前言 在前文 分布式理论(一) —— CAP 定理 中,我们说,CAP 不可能同时满足,而分区容错是对于分布式系统...

  • 分布式系统理论基础二 CAP

    引言 CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分...

  • 分布式事务原理与解决方案实战

    分布式事务: 1 CAP 定理 1.1 概念 CAP 理论在分布式系统中 一致性:分布式环境下多个节点的数据是否强...

  • 搞懂分布式基本理论

    分布式CAP定理 CAP 理论是分布式系统的一个基础理论,它描述了任何一个分布式系统最多只能满足以下三个特性中的两...

网友评论

    本文标题:分布式理论 —— CAP 定理

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