分布式系统的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/

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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