面试官:说说分布式的CAP定理?

栏目: 后端 · 发布时间: 4年前

内容简介:CAP定理又称布鲁尔定理,是计算机科学家 Eric brewer 提出的,是分布式系统领域的一个定理。若想设计一个分布式架构的系统,掌握这项定理不可或缺。**C是Consistency,也就是一致性,在CAP中的是强一致性。A是Availability ,可用性。P是Partition tolerance,分区容错性。在分布式系统中三者不可兼得,只能选两个。这就是CAP定理。**例如你保证了一致性和分区容错性就无法保证可用性。
面试官:说说分布式的CAP定理?

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

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

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

面试官:说说分布式的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是可以灵活搭配的

如有错误欢迎指正! 个人公众号:yes的练级攻略


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Understanding Machine Learning

Understanding Machine Learning

Shai Shalev-Shwartz、Shai Ben-David / Cambridge University Press / 2014 / USD 48.51

Machine learning is one of the fastest growing areas of computer science, with far-reaching applications. The aim of this textbook is to introduce machine learning, and the algorithmic paradigms it of......一起来看看 《Understanding Machine Learning》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器