• CAP


    1.什么是CAP

        CAP原则又称CAP定理,指的是在一个分布式系统中的:Consistency 一致性、Availability 可用性、Partition tolerance 分区容错性。

      CAP原则指的是,这三个要素最多只能同意实现两点,不可能三者兼顾。

          

     2. Consistency 一致性

      对某个特定的客户端来说,读操作保证能返回最新的写操作的结果。

      下图中G1,G2属于一个集群,下面图解过程主要描述的是客户端向G1写入数据,之后向G2读取数据,达到一致性的过程。

      

       

      

      

      

       

      

      

     3. Availability 可用性

      非故障的节点在合理的时间内返回合理的响应。

    4.Partition tolerance 分区容错性

      当出现网络分区后,系统能够继续提供服务。

      如下图,如果G1和G2网络不通,则出现了网络分区,此时,系统需要能够继续提供服务。

      

    5.CAP为什么不能共存

      举例:发生网络分区的时候,可用性的要求是继续提供读写服务,一致性的要求是数据要一致,已经有网络分区了(网不通),新增数据必然无法同步。

    6.CAP必选之P-分区容错性

      分区容错性是必要选择

      1.所有的软件产品都是运行在互联网上的,互联网是以物理网络为载体的,那么网络分区是不可避免的(强行举例:曾经因为施工网线挖断,导致阿里服务暂停)

      2.假设分区容错性不是必选,那么发生分区的时候不继续提供服务,A可用性肯定无法满足

    7.CA二选一之CP、AP

      CP:

        描述:一致性和分区容错性,如果发生了网络分区,那么数据无法达成一致,需要停止服务,故牺牲了A可用性

        优点:正常工作的集群,各服务节点的数据是一致的,那么客户端读取任何一个服务节点都不用担心数据不一致问题

        缺点:要求数据一致,那么更新数据的时候,需要阻塞等待所有人同步完数据,服务延时较大

      AP:

        描述:可用性和分区容错性,如果发生了网络分区,依然可以对外提供读写服务,那么不同网络分区服务中的数据肯定会出现不一致,故牺牲了C一致性

        优点:系统高可用,能容忍一定程度的外部错误(网络分区,少数服务器宕机)

        缺点:客户端向集群中写入的数据,通过不同的服务读取,可能得到不同的结果

    8.实战

      zookeeper使用的是CP,对于C的话,使用的是最终一致性

      eureka使用的是AP,因为注册中心这种业务对可用性要求较高,而且数据不一致的影响不大,可以通过重试获取连接其它服务器解决问题。
      
      

      

  • 相关阅读:
    【SICP练习】150 练习4.6
    windows已安装solr
    ps快速删除圆角图片旁白的白色区域方法
    junit学习笔记(二):hamcrest和TestSuit
    取球游戏
    【Linux操作系统分析】设备驱动处理流程
    POJ Secret Milking Machine 【网络流+二分】
    oracle 10 g 需要启动的2个服务
    jQuery也能舞出绚丽的界面(完结篇)
    HDU 2665(Kth number-区间第k大[内存限制+重数])
  • 原文地址:https://www.cnblogs.com/gc65/p/12773450.html
Copyright © 2020-2023  润新知