加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.cn/)- 图像处理、低代码、云通信、数据工具、物联设备!
当前位置: 首页 > 创业 > 点评 > 正文

这里有 CAP 分布式最易懂的解释

发布时间:2020-11-06 13:53:16 所属栏目:点评 来源:互联网
导读:一天晚上,正准备入睡时,你的妻子对你记住她生日并送她礼物表示感谢。这时,一个商业想法从你的脑海中闪现:人们总是弱于记忆生活中的事情,而我却拥有超群的记忆力,因此,为何不成立一间公司可以充分运用自己的记忆天赋来赚钱。说干就干,接着你在当地一

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

记忆公司 —— 你的事情永不会忘记

还在为你老是忘记而苦恼?福音来了,只须一个电话。

当你需要记着某件事情时,请拨打 400 - 888 - 8888,告诉我们你需要记住的事情,下次你需要找回这件事情,请再次拨打电话,我们将会告诉你的所需。

收费:每次只需要 10 元。

以下是一次你和顾客的电话对话。

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

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

顾客:1月2日。

你:(在一个本子,翻到这位顾客的一页,记录下他邻居的生日。)好的,已记录好。下次你找回邻居的生日,请再次拨打电话。

顾客:谢谢。

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

  • 一致性:一旦顾客更新了记录,下次再打电话查询时,总能获取最新的记录
  • 可用性:只要你和妻子有人上班,记忆公司总能为顾客提供服务
  • 分区容忍性:即使你和妻子的沟通无法进行,记忆公司仍然可以提供服务
  • 这时你才意识到,设计一个分布式的系统是多么的不容易,难道就没有同时满足 一致性和可用性 的设计吗?

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

    当接到记录的电话(顾客要求为他们记录事情),如果我们两人当天都上班,那么我们同时记录下这位顾客的记录

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

    第二天,没上班的人上班后第一件事就是接收所有的 E-mail ,并在自己的本子上记录所有顾客的要求。记录好后,才开始接收第一个电话。

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

    新计划实施两天后,你接到了一个名叫 John 的电话,John 是个老顾客了。

    John:Hey

    你:你好,欢迎拨打记忆公司电话,有什么可以帮到你吗?

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

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

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

    John:什么?!昨天我才刚打电话过来说去新泽西航班的事情。

    哪里出错了?难道 John 撒谎了。你继续思考导致出错的原因。会不会是妻子接到了电话?你走到妻子的桌子,发现妻子将 John 的航班记录在了本子上,这时你才意识到导致问题的原因,妻子接听到 John 的电话,但你的本子没有 John 的记录。

    如果将上面的实施计划称一个分布式的设计,那这个设计存在明显的问题——一致性(consistent)的问题。打进来的电话可能其中一人接听并记录下来,下次电话查询时却可能由另一人接听,这样就会出现不一致的问题,无法为顾客准确提供服务。

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读