Zookeeper和Eureka的区别

著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。

Zookeeper:

集群节点为主从关系,注册以主节点为主,在一个设备上完成,这样可以提高分区容错性,同时具备数据一致性。主节点以复制的方式将数据同步到从节点,当同步数据量大时,服务不可用,性能降低,所有放弃了服务可用性

Eureka:

集群节点间发送心跳包,如果某个节点发送心跳包而其他节点没有收到,Eureka会将该节点做服务保护,从而提高分区容错性。集群节点是平等的,服务可以从任何一个节点提供,所以具备服务可用性,而放弃了数据一致性这里并不是完全放弃数据一致性,而是放弃数据的强一致性,保留数据的最终一致性。举个栗子:淘宝购物服务如果同时接受两个订单,那么较晚的订单将被告知售罄。)。

其他不同如下:

- Zookeeper Eureka -
CAP CP AP
Dubbo集成 支持 -
Spring Cloud集成 支持 支持
使用接口(多语言支持) 提供客户端 http语言 zk跨语言支持较弱
watch支持 通过订阅监听来实现 通过轮询的方式来实现 watch支持:客户端监听服务端的变化情况
集群监控 - 运维人员通过metrics收集并报警度量信息达到监控的目的

猜你喜欢

转载自blog.csdn.net/kidom1412/article/details/87869503