1 CAP理论
C:consistency强一致性
A:availability可用性
P:partition tolerance分区容错性
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性、可用性、分区容错性这三个需求。因此,根据CAP原理将NoSql数据库分成了满足CA原则、CP原则、AP原则三大类。
CA:单点集群,满足一致性、可用性的系统,通常在可扩展性上不太强大。
CP:满足一致性、分区容错性的系统,通常性能不是特别的高。
AP:满足可用性、分区容错性的系统,通常可能对一致性要求会低一些。
CAP理论关注的粒度是数据,而不是整体系统设计的策略。
2 AP(Eureka)
当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。
结论:违背了一致性C的要求,只满足可用性和分区容错性。
Eureka的自我保护机制就是Eureka满足AP的一个体现。
eureka的自我保护机制的描述
默认情况下 eureka在一定时间内没接收到某个服务的心跳时(默认90s),eureka就会注销该实例;但为了防止在网络拥堵情况下eurekaserver与服务的通信异常导致心跳检测失败,此时服务是正常运行的,不应该被注销掉,eureka就通过"自我保护机制"来防止这种情况: 当eurekaservice在一段时间内失去过多客户端(服务)时,他就会进入保护模式,会保护服务的注册信息,也不会注销服务,待网络正常后会自动退出保护模式,即宁可保存错误的服务信息 也不删除有可能正确的信息
3 CP(Zookeeper、Consul)
当网络分区出现后,为了保证一致性,就必须拒绝请求,否则无法保证一致性。
结论:违背了可用性A的要求,只满足一致性和分区容错性。
4 Eureka、Zookeeper、Consul异同点