10. CAP理论

CAP定理指出,分布式软件系统不可能同时提供以下三种保证(CAP)中的两种以上:一致性,可用性和分区容错性。当我们设计一个分布式系统时,在CAP之间进行权衡几乎是我们想要考虑的第一件事。 CAP定理说,在设计分布式系统时,我们只能选择以下两个:

一致性:所有节点同时看到相同的数据。通过在允许进一步读取之前更新多个节点来实现一致性。

可用性:每个请求都会获得成功/失败的响应。通过跨不同服务器复制数据来实现可用性。

分区容差:尽管消息丢失或部分故障,系统仍可继续工作。数据在节点和网络的组合中得到充分复制,以通过间歇性中断使系统保持正常运行。

我们无法构建一个持续可用,顺序一致且容忍任何分区故障的通用数据存储。 我们只能构建一个具有这三个属性中任意两个的系统。
因为,为了保持一致,所有节点都应以相同的顺序看到同一组更新。 但是,比如A服务器更新了,此时B服务器还未更新。这个时候客户端向B服务器请求这个数据(根据P,所以向任何一个服务器请求都是OK的) 为应对这种可能性,唯一可以做的就是停止提供来自过时的数据源B的请求,直到B也更新完成,这样就不满A,服务不再100%可用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,038评论 2 89
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,450评论 0 9
  • CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显...
    他山之石头阅读 1,389评论 1 4
  • 分布式系统面临的第一个问题就是数据分布,即将数据均匀地分布到多个存储节点。另外,为了保证可靠性和可用性,需要将数据...
    olostin阅读 4,632评论 2 26
  • 我的初恋 沉寂了半世 锁在了春天 直到今天 拿出来怀念 其实我明白 那只是暗恋 也可能只是一种 思春的情怀 不曾发...
    微雨凭栏阅读 221评论 6 8