1. 概要
分布式系统的设计需要考虑CAP理论:一个分布式系统,无法同时满足CAP三个指标。
CAP是三个指标:
- Consistency,一致性。
- Availability,可用性。
- Partition tolerance,分区容忍性。
2. 概念解读
维基百科中,CAP的定义如下:
- Consistency: Every read receives the most recent write or an error
- Availability: Every request receives a (non-error) response, without the guarantee that it contains the most recent write
- Partition tolerance: The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes
从字面意思来说,
- 一致性,指每个读请求都能获得最新的数据,否则返回失败。这表明,返回的数据要么是最新数据,要么失败。
- 可用性,指每个读请求都能获得一个回应,而且不会响应错误。这表明,即使不是最新数据,也会返回。
- 分区容忍性,指即使分区节点通讯时出现消息出现延迟或丢失,系统仍会继续提供服务。这表明,即使系统部分分区出现网络等网络,用户仍可继续使用。
3. CAP三者的权衡
对于一个分布式系统,必须满足分区容忍性P。而当出现分区错误时,必须在一致性C和可用性A之间做出抉择。
-
当选择一致性C,由于分区数据不是最新,那么会返回错误或者一直等待至数据更新才返回。 (这个结果不满足可用性A)
-
当选择可用性A,即使分区数据不是最新,也会返回当前分区的数据。(这个结果不满足一致性C)
author's blog == http://www.cnblogs.com/toulanboy/
参考
标签:返回,可用性,分区,CAP,简记,分布式系统,一致性 来源: https://www.cnblogs.com/toulanboy/p/14621376.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。