分布式系统的CAP原理及其应用

分布式系统的CAP原理及其应用什么是分布式系统的CAP原理    在分布式系统中,一致性(C)指每一次读都得到最近的写数据,或者一个异常;可用性(A)指每一个请求都得到一个非异常的响应,而不保证取得最近的写数据;分区容错性(P)是指结点间网络异常时,系统仍然可以继续运行。原理指出,一个分布式系统最多只能提供CAP中的两个保障。  值得注意的是,CAP原理指的是在分区发生时,只能在保证一致性或可用性中二选其一。而非因为分区不…

大家好,又见面了,我是你们的朋友全栈君。

什么是分布式系统的CAP原理

    在分布式系统中,一致性(C)指每一次读都得到最近的写数据,或者一个异常;可用性(A)指每一个请求都得到一个非异常的响应,而不保证取得最近的写数据;分区容错性(P)是指结点间网络异常时,系统仍然可以继续运行。原理指出,一个分布式系统最多只能提供CAP中的两个保障。

    值得注意的是,CAP原理指的是在分区发生时,只能在保证一致性或可用性中二选其一。而非因为分区不可避免,在系统设计时必须放弃一致性或可用性,没有分区发生时可以同时保证一致性和可用性。

CAP原理的简单模型解释

    如图,网络中有两个结点N1和N2,可以简单的理解N1和N2分别是两台计算机,他们之间网络可以连通,N1中有一个应用程序A,和一个数据库V,N2也有一个应用程序B和一个数据库V。

分布式系统的CAP原理及其应用

    正常运行时的场景如下图:

分布式系统的CAP原理及其应用

    当结点间的网络发生问题时,N1和N2间的数据同步失效。此时系统只能在一致性和可用性中二选一。选择一致性时,结点将对请求返回不可用异常。选择可用性时,结点将返回现有的数据,而此时数据可能已经过时。

分布式系统的CAP原理及其应用

CAP原理在互联网场景的应用

    对于多数大型互联网应用的场景,主机众多、部署分散,而且现在的集群规模越来越大,所以节点故障、网络故障是常态,而且要保证服务可用性达到N个9,即保证P和A,舍弃C(退而求其次保证最终一致性)。虽然某些地方会影响客户体验,但没达到造成用户流失的严重程度。

    对于涉及到钱财这样不能有一丝让步的场景,C必须保证。网络发生故障宁可停止服务(或者只读不写),这是保证CA,舍弃P。

CAP原理在数据库领域的应用

    CAP理论在数据库领域也有广泛的应用,如下图中按照CAP中三选二对数据库系统的分类:

分布式系统的CAP原理及其应用

    参考资料

1. http://www.hollischuang.com/archives/666

2. http://zohararad.github.io/presentations/big-data-introduction/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144440.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MyBatis查询结果resultType返回值类型详细介绍

    一、返回一般数据类型比如要根据id属性获得数据库中的某个字段值。mapper接口://根据id获得数据库中的username字段的值StringgetEmpNameById(Integerid);SQL映射文件:<!–指定resultType返回值类型时String类型的,str…

    2022年4月1日
    121
  • h5学习笔记:vuethink 配置

    h5学习笔记:vuethink 配置

    2021年10月13日
    66
  • 算法交易:华尔街怪兽的核武器

    算法交易:华尔街怪兽的核武器1980年华尔街的黑客生涯:天时地利20世纪70年代末期,算法开始进入人们的工作,这一趋势席卷了世界各地的金融市场,标志着华尔街黑客时代已然来临。华尔街逐渐吸引了美国越来越多杰出的数学家和科学家投身于编写交易算法的工作。在布莱克?斯科尔斯统治市场之前,已经有少数工程师和科学家进入曼哈顿下城市场了,但他们大都是外来移民。麻省理工、哈佛和此类高等学府的工程楼和科学楼成了招聘者竞相争夺人才…

    2022年7月11日
    11
  • 视频地址blog加密

    视频地址blog加密/* JS部分 没处理兼容什么的 */   varid='<?phpecho$_GET[‘id’];?>’;   varvideo=document.getElementById(“player”);   window.URL=window.URL||window.webkitURL;   varxhr=newXM…

    2022年5月5日
    47
  • 统一用户登录管理认证LDAP 服务端部署

    网上找了好多关于LDAP统一账户管理的文件,好多都是粘贴复制,能用得上的少之又少,正好最近又用到这个,于是着手看了郭老师的视频,顺便把自己学习的过程记录下来,供大家学习参考。1、实验环境:[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.2.1511(Core)[root@loca…

    2022年4月6日
    54
  • 下列python语句的输出结果是print_下列 Python语句的输出结果是「建议收藏」

    下列python语句的输出结果是print_下列 Python语句的输出结果是「建议收藏」【填空题】遍历输出文件所有行。f=open(“d:\\r2.txt”,”r”)whileTrue:str=print(str,end=”)ifnotstr:breakf.close()【填空题】Pyhon语句序列”s1=’redhat’;print(str.upper(s1))”的运行结果是?【单选题】下列语句中,()在Python中是非法的。【单选题】执…

    2025年6月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号