经典CAP图
分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:
●一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
●分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
现在的分布式系统只能取其二。
CAP理论的核心是:
一个分布式系统不可能同时很好的满足一致性、可用性和分区容错性这三个需求,因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:
CA – 单点集群,满足一致性、可用性的系统,通常在可扩展性上不太强大;
CP – 满足一致性、分区容错性的系统,通常性能不是特别的高;
AP – 满足可用性、分区容错性的系统,通常可能对一致性要求低一点;
CAP的3进2:
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题。所以,分区容错性使我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统可以能同时保证这三点。
Zookeeper保证的是CP;
Eureka保证的是AP;
Eureka相比于Zookeeper的优势:
Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像Zookeeper那样使整个注册服务瘫痪。