摘要:是分布式数据库中的重要理论之一。为了更好的理解分布式数据库,我们需要对理论有个简单的理解。概述证明了,对于一个分布式数据库系统,存在这样三个指标一致性。根据理论,当你在设计使用分布式数据库时,你需要做出选择在中放弃什么。
CAP 是分布式数据库中的重要理论之一。为了更好的理解分布式数据库,我们需要对 CAP 理论有个简单的理解。
1.CAP 概述CAP 证明了,对于一个分布式数据库系统,存在这样三个指标:
C_onsistent_(一致性。写操作是 原子 的,当写操作完成后,所有后续的读取操作获取得到的都必须是新值),
A_vailable_(可用性。只要还有一个节点服务器在运行,整个系统对于请求总是要返回结果)
P_artition tolerant_(分区容忍性。当节点服务器之间的通信中断后,即:出现网络分区,整个系统还是能提供服务的)。
而你只能在这三个指标中同时照顾好两个。
根据 CAP 理论,当你在设计/使用分布式数据库时,你需要做出选择:在 Consistent, Available, Partition tolerant 中放弃什么。
Partition tolerant 是个架构选择(数据库是否是分布式),所以一般而言,你需要选择是更在意 Consistent 还是 Available。
理解 CAP 理论对于做出正确的选择是至关重要的。
2.CAP 小故事为了更好地理解 CAP,这里以现实生活中的例子做个类比
假设这个世界是一个巨大的分布式系统,关于暴走漫画的知识是系统中存储的数据,暴漫的粉丝是这个分布式系统中的一个个节点。
假设今天你刚刚看了最新一期暴走大事件(第三季43集),而今天的日期是 2015年4月18日,突然有一伙儿神秘人闯进你家门,把你抓到了深山里,让你参与建造方舟,并且与世隔绝。
时光如梭,一转眼 5 年过去了,到了 2020年1月2日。方舟建成,你被送回了家乡。在回家的路上,你遇到一个路人,问了你一个问题:
暴走大事件最新一期是第几季第几集了?
这时候,你需要做一个选择:
你可以回答你知道的最新一期(第三季43集,5年前的最新一期)。如果你选择回答,那你就是 Available 的。或者你可以选择不回答,因为你已经与世隔绝了 5 年,你知道你的答案很可能和世界上其余暴漫粉丝的答案不一致(Consistent),这样这个路人得不到答案,但是整个世界是 Consistent 的。
即:你可以选择确保路人能得到答案(Available),或者确保世界的一致性(Consistent)。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/17461.html
摘要:和上一篇博文一样,这次我们依旧以为案例,来分析理论在一个实际的分布式数据库中的作用。这次我们来看看,在这样的分布式数据库中,理论是怎么起作用的。需要最终包含正确的值的服务器节点总数正确的冗余数据拷贝数。其实这就是关系型数据库的做法。 和上一篇博文一样,这次我们依旧以 Riak 为案例,来分析 CAP 理论在一个实际的分布式数据库中的作用。 如果你还不熟悉 CAP,可以参考我之前的两篇博...
阅读 2957·2021-11-17 09:33
阅读 3120·2021-11-16 11:52
阅读 483·2021-09-26 09:55
阅读 2976·2019-08-30 15:52
阅读 1316·2019-08-30 15:44
阅读 1260·2019-08-30 13:59
阅读 798·2019-08-30 13:08
阅读 1159·2019-08-30 10:50