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理论的主要内容,如果未能解决你的问题,请参考以下文章

分布式架构之「 CAP理论」

画图证明CAP理论

CAP和BASE理论

CAP理论提出者解读全球级分布式数据库:Spanner, TrueTime 和CAP理论

分布式理论基础CAP和BASE理论

系统架构师福音—浅谈 CAP 理论