加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长资讯 > 动态 > 正文

CAP理论解释

发布时间:2021-04-18 13:18:09 所属栏目:动态 来源:互联网
导读:忆公司的日常业务通话记录: 客户:喂,你好,你可以存储我邻居的生日吗? 你:可以,您说。 客户:1月2号 你:记录(在笔记本这个客户页上记下信息), 好的,欢迎下次垂询。 客户:谢谢 你:请支付1元 2.业务扩张 凭借创意和人品,【记忆公司】的规模越做越大

忆公司的日常业务通话记录:

  • 客户:喂,你好,你可以存储我邻居的生日吗?
  • 你:可以,您说。
  • 客户:1月2号
  • 你:记录(在笔记本这个客户页上记下信息), 好的,欢迎下次垂询。
  • 客户:谢谢
  • 你:请支付1元

2.业务扩张

凭借创意和人品,【记忆公司】的规模越做越大,而成本只需要笔记本和电话。

当你某天生病不能工作时,你会损失一天的收入;更不用说当天想要信息的客户会因此发狂。

你有了新计划:

1. 你和你老婆分别使用分机

2. (555)—55-REMEM 客服电话不变

3. 客服电话会转到空闲的分机号

第一次业务宕机

有一天你收到老客户罗志祥的电话,要求查询"明天的约会安排";

你一脸蒙蔽,我不知道啊,你的记忆页上没这个信息啊; 客户咣当挂断了电话。

当天复盘, 猜想是昨天罗志祥把业务电话打到我老婆那里了,事实确实如此。

你们都意识到分机号带来的新问题。

多么可怕的分布式设计中的缺陷!你的分布式系统是不一致的!总会有一个时机,客户会将业务电话打到你们其中一个;在下一次拨号时,客户就可能收到不一致的信息。

4.修复一致性问题

睡前吹风时间, 你想到一个主意:

  •  当我们其中一个人接到客户新的记忆业务,我们会在挂电话之前告诉另一个人
  • 这样我们都能在笔记本上记下新业务里有一个问题:当其中一人收到新业务电话,两人就不能并行工作了。

    例如:当你收到新业务并告诉我记录信息时, 我不能接其他电话。

    但是这个问题也不大,因为大部分都是查询业务(可以再拨电话重试),我们首要的是确保信息正确。

    你老婆进一步提出:如果某天你不在岗,我收到新业务,你的笔记本不能得到最新信息,这就会有可用性问题, 因为我没能通知你,我就不能挂断电话完成这单业务。

    5. 更优方案

    你慢慢理解了分布式系统中的“一致性”和“可用性”。你提出了更优方案:

    1. 收到新业务电话, 挂电话前通知对方,这样两个人都能记下信息

    2. 某天其中一人不在岗,另外一人收到新业务电话 ,给缺岗者发一封邮件

    3. 第二天缺岗者上岗查收邮件,更新自己的笔记本。

    的方案包含了“一致性”,“可用性”, 但是不满足“分区容错”。

    为了满足“分区容错”, 你可以自我下线(直到你们修复关系),让你老婆一人接手业务,但是你的系统就不可用了。

    7.结论

    我们回过头看CAP定理:在设计分布式系统时,“一致性Consistency ”“可用性Availability”“分区容错Partition Tolerance” 你只能满足两个。

    ?Consistency:一旦接受了客户的新业务,在客户后续查询时必须得到最新的信息

    ?Availability:只要你们一人在岗,记忆公司就一直提供服务

    ?Partition Tolerance:你们夫妻二人闹矛盾了,记忆公司依旧运作

    有了这样的场景,理解CP、AP、CA就不难了

(编辑:云计算网_泰州站长网)

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

    热点阅读