Eureka和zookeeper的比较
什么是CAP?
cap的核心理论是一个分布式不可能很好的满足一致性,可用性和分区容错性这三个需求。因此根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和AP原则三大类。
- CA 单点集群,满足一致性。可用性的系统,通常在扩展上不大强大。
- CP满足一致性,分区容错的系统。通常性能不是特别高。
- AP-满足可用性,分区容错性。通常对一致性要求低一些。
但是对于目前市场上而言,大家多选CP和AP,因为分区容错性是必须实现的。
Eureka比Zookeeper比较
- Zookeeper是CP
- Eureka是AP
Zookeeper因为满足CP,因此需要时刻保持数据的一致性。我们都知道zookeeper有集群,如果master节点出现故障,剩余节点会重新选举leader.但是选举的时间特别的长。并且在选举的时间内,zookeeper集群不可用。
Eureka是AP,Eureka从Zookeeper中汲取了经验。在Eureka中每个节点相互平等,偶尔有几个节点挂掉并不影响其他节点的工作。并且Eureka还有自我保护机制,如果在分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障。
此时会出现以下三种情况:
- Eureka不再从注册表中移除因为长时间没有收到心跳而应该过期的服务
- Eureka依旧能够接受新服务的注册和查询请求,但是不会被同步到其他节点上(保证档期节点依然可用)
- 当网络稳定时,当前实例新的注册信息会贝同步到其他节点中