当前位置 博文首页 > yuanting_的博客:一分钟了解CAP的3进2

    yuanting_的博客:一分钟了解CAP的3进2

    作者:[db:作者] 时间:2021-08-25 10:11

    springcloud是AP(高可用性)

    dubbo+zookeeper是CP(强一致性)

    CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾;

    最多只能同时满足两个;
    CAP理论就是说在分布式存储系统中,最多只能实现上面的两点,而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须要实现的.
    所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点;
    C:Conslstency(强一致性)
    A:Availability(可用性)
    P:Parition tolerance(分区容错性)
    CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,因此,根据CAP原理将NoSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类:
    CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强太;
    CP-满足一致性,分区容忍必的系统,通常性能不是特别高;
    AP-满足可用性,分区容错性的系统,通常可能对一致性要求低一些;
    在某个节点挂掉的时候 要满足c 强一致性 就必须要down掉所有的节点
    但是 满足a高可用性 就只需要挂掉这一个节点 他们是互相矛盾的
    所以只能3进2
    p 的分区容错性是必须要的
    不是因为p一定要满足,而是因为c和a满足的情况下c是一致性,要满足一致性,就需要数据同步,a是可用性,数据同步是需要时间的,
    而p是容错性,想要满足容错性,就需要很多台服务器,那么服务器太多,同步数据就需要时间,所以要满足c和a就不能有太多服务,服务不够多,那么容错性也是不能满足的 再加上分布式的目的就是为了容错性,所以p是大家都需要了,就直能在ap和cp之间选择
    注册中心就是基于这个原则做的,eureka是满足ap的
    还有zokeerper是满足cp的

    cs