美文网首页
三面阿里,面试官:讲讲分布式的CAP定理

三面阿里,面试官:讲讲分布式的CAP定理

作者: 编辑小猿 | 来源:发表于2019-05-13 19:51 被阅读0次

CAP定理又称布鲁尔定理,是计算机科学家 Eric brewer 提出的,是分布式系统领域的一个定理。

若想设计一个分布式架构的系统,掌握这项定理不可或缺。

**C是Consistency,也就是一致性,在CAP中的是强一致性。A是Availability ,可用性。P是Partition tolerance,分区容错性。在分布式系统中三者不可兼得,只能选两个。这就是CAP定理。**例如你保证了一致性和分区容错性就无法保证可用性。

Consistency

这里的一致性是强一致性,强一致性的意思就是例如节点A更新了数据,节点B能同时更新,这样客户端在每次读取获得数据都是最近更新的。但是 在定理中是忽略掉我们平日里的网络延迟的。现实情况网络延迟在现在还是无法避免的,所以我们只能实现最终一致性,但是目标还是贴近强一致性,也就是尽力降低延时的时间。

Availability

可用性指的是非故障的节点需要在合理的时间返回合理的响应。合理的响应的意思也就是不能搞个报错,不能是超时失败。举个例子比如说节点A更新了数据,同时要发布到节点B上,但是中间传输的电缆被挖掘机挖断了,此时用户去访问节点B,此时节点B应该返回老的数据,而不应该报错。这就是可用性。让用户感觉系统还是能用的。

Partition tolerance

分区容错性,指的是当网络分区了,系统还能正常的运行和响应。比如节点A和节点B无法通信,你要考虑这个时候系统如何应该。虽然网络分区的概率低而且时间短但是这种情况是会发生的。所以理论上是牺牲C或者A,P是一定要达到的。

举个例子,把P扔了。所以此时系统需要保证CA,然后此时发生了网络分区,节点A和B无法通信了,此时客户端想要往节点A写入数据,但是因为此时无法同步数据至节点B。所以只有保证A不写入因此才能保证一致性。那你不让客户端往A写数据,你就只能报个错返回给客户端,说此时不能写,那是不是违反了可用性了?

所以在分布式系统中P是一定要保证的。所以在分布式系统中是CP,AP这样搭配的。

那CA呢?请注意, CAP所说的CAP三者只能存在两者,所以CA是可以能搭配的。就是在系统没有P的时候,CA搭配。也就是说当系统不存在分区情况的时候要满足C和A,当系统出现分区情况的之后视情况抛弃C或者A。

注意

CAP理论不是系统级别的,是数据级别的。啥意思呢?

也就是说当出现网络分区的情况,你可以一部分数据遵守CP,一部分数据遵守AP。例如用户注册场景可以上CP,保证用户注册之后登录的成功。而用户更换头像这种就上AP,毕竟用旧的数据影响也不会很大。

因此我们要根据不同的业务场景来选择不同的应对方案。CAP是可以灵活搭配的

相关文章

  • 三面阿里,面试官:讲讲分布式的CAP定理

    Consistency 这里的一致性是强一致性,强一致性的意思就是例如节点A更新了数据,节点B能同时更新,这样客户...

  • 三面阿里,面试官:讲讲分布式的CAP定理

    CAP定理又称布鲁尔定理,是计算机科学家 Eric brewer 提出的,是分布式系统领域的一个定理。 若想设计一...

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

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

  • 从Paxos不违反CAP来解释什么是CAP定理

    CAP定理是分布式领域当中非常著名的定理,也是大家津津乐道的一个分布式定理。有些人这么理解CAP定理:在分布式系统...

  • 架构篇章

    并发与并行的定义与区别 分布式CAP定理 定义:CAP定理又称CAP原则,指的是在一个分布式系统中,Consist...

  • 面试篇:分布式事务

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

  • CAP 定理

    CAP 定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于分布式计...

  • CAP定理

    CAP定理(CAP theorem), 又称布鲁尔定理(Brewer's theorem),一个分布式系统不可能同...

  • Eureka和ZooKeeper的特性

    CAP定理 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(数据一致性)、 Avail...

  • 分布式数据库数据一致性

    1. CAP定理 CAP定理是2000年,由 Eric Brewer 提出来的。Brewer认为在分布式的环境下设...

网友评论

      本文标题:三面阿里,面试官:讲讲分布式的CAP定理

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