CAP 理论 —最通俗易懂的解释

Posted 码农有道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAP 理论 —最通俗易懂的解释相关的知识,希望对你有一定的参考价值。

链接:blog.csdn.net/lihao21/article/details/81051631

码农有道作了部分修改

码农有道

 



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

1:一致性(Consistency)

2:可用性(Availability)

3:分区容错性(Partition tolerance)

CAP 理论听起来十分抽象,本文尝试以生活中的例子并用通俗易懂的语言来解释 CAP 理论的含义。

第一章:记忆公司面世

一天晚上,正准备入睡时,你的妻子对你记住她生日并送她礼物表示感谢。这时,一个商业想法从你的脑海中闪现:人们总是弱于记忆生活中的事情,而我却拥有超群的记忆力,因此,为何不成立一间公司可以充分运用自己的记忆天赋来赚钱。说干就干,接着你在当地一间报社刊登了记忆公司的宣传广告:

顾客:Hey,麻烦帮我记住我邻居的生日。

:好。你邻居生日是什么时候?

顾客:1月2日。

顾客:谢谢。

:不客气,本次收费 10 元。


第二章:业务扩大了  


第三章:服务出错了  

John:Hey

John:可以告诉我去新泽西的航班是什么时候吗

:当然。(然后你翻开 John 的页面,发现并没有 John 航班的记录)

:你好,是不是搞错了,我们这里并没有关于你航班的信息


第四章:解决一致性问题


晚上你在床上翻来覆去,最后想到一个解决一致性问题的办法,你把新的计划告诉妻子:

这样,我们两个人都会在本子更新这位顾客的记录


第五章:更好的办法

这时你才意识到,设计一个分布式的系统是多么的不容易,难道就没有同时满足 一致性和可用性 的设计吗? 

又经过一晚的思考,你想到一个两全其美的办法,新的办法跟之前的很相似。你把新的办法告诉妻子:

但如果另一人当天没上班,我们可以将记录通过 E-mail 的方式发送给不上班的人

真是天才,妻子说,这个办法我找不出任何问题了,而且可以同时满足 一致性和可用性 的要求。


第六章:妻子生气了

公司所有业务继续正常运作了好一段时间,即使你和妻子其中一人不上班,服务仍然可以正常提供。 

好景不长,新的问题又出现了。 

当然,你也可以允许沟通无法进行的情况下继续提供服务。这样,当有顾客需要记录时,由于需要满足 一致性 要求,这位顾客的服务就无法完成,也就是 可用性 无法满足。。。


       第七章:结论       

让我们再次回到 CAP 理论,CAP 理论告诉我们,当设计一个分布式系统时,我们无法同时满足 一致性,可用性,分区容忍性 的要求,我们最多满足其中的两个要求,形式化的证明,可以参考 CAP 理论的证明 。

可用性:只要你和妻子有人上班,记忆公司总能为顾客提供服务

分区容忍性:即使你和妻子的沟通无法进行,记忆公司仍然可以提供服务


 番外篇:背后的记录员 

推荐阅读:




专注服务器后台技术栈知识总结分享

欢迎关注交流共同进步

码农有道 coding


码农有道,为您提供通俗易懂的技术文章,让技术变的更简单!

以上是关于CAP 理论 —最通俗易懂的解释的主要内容,如果未能解决你的问题,请参考以下文章

如何通俗易懂地解释遗传算法?有什么例子?

音视频开发基础知识——最通俗易懂的视频编解码理论知识

音视频开发基础知识——最通俗易懂的视频编解码理论知识

python装饰器通俗易懂的解释!

什么是区块链?这是我见过的最通俗易懂的解释

通俗易懂谈机器学习