分布式系统的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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux卸载socat,socat在Linux下的使用「建议收藏」

    目录0x01socat介绍0x02socat进行文件传输0x03socat正向端口转发0x04socat反向端口转发注:边界机器Ubuntu192.168.222.177内网机器win7192.168.222.1370x01socat介绍socat我们在前面也已经介绍过了,之前说的是Windows下的利用,如果没有看到的朋友请移步【socat在Windows下的使用】,socat…

    2022年4月10日
    163
  • 国产Linux系统下替代QQ和微信的不二之选

    国产Linux系统下替代QQ和微信的不二之选在2019年,UOS宣布成立至今,原深度系统得到资金之后,发展速度直线上升,目前已经完全可以使用Deepin系统进行办公和日常使用了UOS是Deepin的专业版,前者收费,后者免费,和红帽一样的运营策略但是,众所周知,在去年QQ迎来了距离上一次更新十年前后的第一次更新,更新效果一如既往的被吐槽,因为真的太敷衍了,而微信至今为止,并未有过真正的Linux平台的cs客户端,有的只是一个残废的网页封装版,所以如果使用国产系统去使用腾讯家族的东西,那将是一种折磨。幸好,互联网新秀字节跳动退出了覆盖全国产.

    2022年5月16日
    74
  • java销售管理系统_图书销售管理系统Java源代码

    java销售管理系统_图书销售管理系统Java源代码【实例简介】图书销售管理系统,内含源代码,项目需求分析,编写思路【实例截图】【核心代码】BookSaleManagementSystem└──BookSaleManagementSystem├──bin│├──com││└──pb││├──authority│││├──impl││││├──…

    2022年6月14日
    31
  • 基于Unity的AOP的符合基于角色的访问控制(RBAC)模型的通用权限设计

    基于Unity的AOP的符合基于角色的访问控制(RBAC)模型的通用权限设计

    2021年8月15日
    44
  • iPhone 各屏幕尺寸及解析[通俗易懂]

    一.iPhone各屏幕尺寸表手机型号屏幕物理尺寸屏幕密度开发尺寸像素尺寸倍图4/4s3.5inch326ppi320*480pt640*960px@2×5/5S/5c/SE4.0inch326ppi320*568pt640*1136px@2×6/6S/7/84.7inch326ppi375*667pt75…

    2022年4月11日
    2.0K
  • ubuntu部署nginx_nginx服务无法启动

    ubuntu部署nginx_nginx服务无法启动安装命令:sudoapt-getinstallnginx默认的安装目录/etc/nginx下启动命令:/etc/init.d/nginxstart启动成功!浏览器访问127.0.0.1

    2026年1月24日
    2

发表回复

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

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