CAP理论
Posted 活个明白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAP理论相关的知识,希望对你有一定的参考价值。
第很多次看这个理论了,最近又看了一下,对这个理论又有了不同的认识,原因嘛,是因为看到一篇文章,作者写的太牛了,文章链接在最下面,基本上可以跳过我写的内容,直接看文章就好了
最近每天都有在认真的写日记了,把每天的思考和收获写下来,希望能至少坚持一年~~
当然,不是每一篇都适合发出来,所以见谅~~
有想交流的朋友可以微信直接私聊我~~
定义: CAP理论:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。
这个理论的抽象性真是高啊,无比犀利,佩服佩服
Consistency 一致性
一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,所以,一致性,说的就是数据一致性。
三种一致性策略
对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。
如果能容忍后续的部分或者全部访问不到,则是弱一致性。
如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。
CAP中说,不可能同时满足的这个一致性指的是强一致性。
Availability 可用性
可用性指“Reads and writes always succeed”,即服务一直可用,而且是正常响应时间。
可用性分类 |
可用水平(%) |
年可容忍停机时间 |
容错可用性 |
99.9999 |
<1 min |
极高可用性 |
99.999 |
<5 min |
具有故障自动恢复能力的可用性 |
99.99 |
<53 min |
高可用性 |
99.9 |
<8.8h |
商品可用性 |
99 |
<43.8 min |
Partition Tolerance分区容错性
分区容错性指“the system continues to operate despite arbitrary message loss or failure of part of the system”,即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
其实,在CAP理论中。C,A,P三者并不是平等的,CAP之父在《Spanner,真时,CAP理论》一文中写到:
如果说Spanner真有什么特别之处,那就是谷歌的广域网。Google通过建立私有网络以及强大的网络工程能力来保证P,在多年运营改进的基础上,在生产环境中可以最大程度的减少分区发生,从而实现高可用性。
从Google的经验中可以得到的结论是,无法通过降低CA来提升P。要想提升系统的分区容错性,需要通过提升基础设施的稳定性来保障。
所以,对于一个分布式系统来说。P是一个基本要求,CAP三者中,只能在CA两者之间做权衡,并且要想尽办法提升P。
文章引用自: http://www.hollischuang.com/archives/666
以上是关于CAP理论的主要内容,如果未能解决你的问题,请参考以下文章