美文网首页
cap的证明

cap的证明

作者: 写代码的杰西 | 来源:发表于2019-10-11 22:29 被阅读0次

C: Consistency 一致性

A: Availability 可用性

P:Partition Tolerance分区容错性

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

作为一个分布式系统,它和单机系统的最大区别,就在于网络。

c 一致性 a 可用性 p 分区容错性

分区容错是分布式的基础。证明下c 和 a能不能同时满足
网络出故障的情况下。c1和c2交互不了数据。此时有请求进来c1修改了一条数据,如果要满足c一致性,就不能给用户返回数据,因为此时c1c2的数据不同。那就需要用户等待响应,等c1c2交互数据保持一致以后i,才能返回给用户。但是此时可用性a就没有保证了(用户那里持续等待响应)。
如果要满足a可用性,那么用户请求c1,直接返回修改过的数据。但是此时,c1c2由于网络故障没有互通,c1c2的数据就不一致,不能满足c一致性。
由此证明,cap在必须满足p的情况下,只能从a 和c中间取舍一个。


cap.png

CAP的定义

1、C: Consistency 一致性

对于一致性,可以分为从客户端和服务端两个不同的视角。从客户端来看,一致性主要指的是多并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。一致性是因为有并发读写才有的问题,因此在理解一致性的问题时,一定要注意结合考虑并发读写的场景。

从客户端角度,多进程并发访问时,更新过的数据在不同进程如何获取的不同策略,决定了不同的一致性。对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。如果能容忍后续的部分或者全部访问不到,则是弱一致性。如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。

2、A: Availability 可用性

对于一个可用性的分布式系统,每一个非故障的节点必须对每一个请求作出响应。也就是,该系统使用的任何算法必须最终终止。当同时要求分区容忍性时,这是一个很强的定义:即使是严重的网络错误,每个请求必须终止。

好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。可用性通常情况下可用性和分布式数据冗余,负载均衡等有着很大的关联。

3、P:Partition Tolerance分区容错性

分区容错性和扩展性紧密相关。在分布式应用中,可能因为一些分布式的原因导致系统无法正常运转。好的分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体。比如现在的分布式系统中有某一个或者几个机器宕掉了,其他剩下的机器还能够正常运转满足系统需求,或者是机器之间有网络异常,将分布式系统分隔未独立的几个部分,各个部分还能维持分布式系统的运作,这样就具有好的分区容错性。

相关文章

  • CAP证明

    CAP证明 C(Consistency):A read is guaranteed to return the m...

  • cap的证明

    C: Consistency 一致性 A: Availability 可用性 P:Partition Tolera...

  • CAP 理论十二年回顾:"规则"变了

    CAP理论的证明参见:本文转自:CAP 理论十二年回顾:"规则"变了 CAP 理论断言任何基于网络的数据共享系统,...

  • ZooKeeper是按照CP原则构建的,不适合做Service服

    [TOC] 一、cap 分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾...

  • ZooKeeper是按照CP原则构建的,不适合做Service服

    一、cap 分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾。 ①C:C...

  • [翻译]CAP理论及其证明

    CAP是所有分布式系统的基础理论,任何分布式系统只能满足以下三种状态中的任意两种。 一致性(Consistency...

  • 分布式 - 协议和应用

    总结 本文从三个方面介绍了一致性,首先是描述分布架构中的核心理论-CAP,以及其简单的证明。第二部分介绍了 CAP...

  • CAP定理(CAP theorem)

    CAP定理(CAP theorem)在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理...

  • CAP到底是什么鬼?

    CAP到底是什么鬼? CAP理论 解释CAP原理 加深理解 蚂蚁金服OceanBase 据说已经打破CAP?? ...

  • go slice 扩容

    简单总结 1 append后cap超过当前cap的2倍,则采用append后的cap作为cap2 append后c...

网友评论

      本文标题:cap的证明

      本文链接:https://www.haomeiwen.com/subject/mcvvyctx.html