千家信息网

Zookeeper和Eureka的区别是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"Zookeeper和Eureka的区别是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Zookeeper和Eureka的区别是
千家信息网最后更新 2026年11月02日Zookeeper和Eureka的区别是什么

这篇文章主要讲解了"Zookeeper和Eureka的区别是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Zookeeper和Eureka的区别是什么"吧!

CAP定理

在分布式系统的发展中,影响最大的莫过于CAP定理了,是分布式系统发展的理论基石。

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. 2000年,加州大学的计算机科学家 Eric Brewer提出了CAP猜想

  3. 2002 年,麻省理工学院的 Seth Gilbert 和 Nancy Lynch 从理论上证明了 CAP 猜想,CAP猜想成为了CAP定理

「CAP定理,简单来说就是分布式系统不可能同时满足Consistency 一致性、Availability 可用性、Partition Tolerance 分区容错性三个要素」

Consistency 一致性

一致性的含义为,在节点的任意时刻,访问任意节点返回的数据是一致的。即Client端写入一个数据后,Server端将数据同步到整个系统,从而保证系统的数据都相同

Availability 可用性

可用性的含义为,集群能够对用户的请求给予响应。

Partition Tolerance 分区容错性

分区容错的含义为,当出现分区故障时,系统仍要对外提供服务。分布式系统中,每个服务节点都是不可靠的,当某些节点出现异常时,或者节点之间的通讯产生异常时,整个系统就产生了分区问题,分布式系统中分区问题是客观存在的。

CAP权衡

CA

系统选择CA,即不支持分区容错,只支持一致性和可用性。意味着不允许出现分区异常,网络一致处于理想状态。但是分布式系统之间网络异常是客观存在的,如果避免了P,只能把分布式系统退回到单实例系统。

CP

因为分布式系统P是客观存在的,所以我们要在CP和AP之间进行抉择。

在网络分区发生时,两个分布式节点之间无法进行通信,我们对一个节点进行的修改操作将无法同步到另外一个节点,所以数据的「一致性」将无法满足,因为两个分布式节点的数据不再保持一致。除非我们牺牲「可用性」,也就是暂停分布式节点服务,在网络分区发生时,不再提供修改数据的功能,直到网络状况完全恢复正常再继续对外提供服务

「当选择CP时,相当于放弃系统的可用性,换取一致性」。zookeeper是选择了CP的系统

在zookeeper集群中,有如下三种角色

角色作用
Leader事务请求的唯一调度者和处理者 (事务请求为除查询之外的请求)
Follower处理非事务请求,参与Leader选举投票
Observer处理非事务请求,不参与选举投票

在Leader服务器失效时,会重新从Follower服务器中选举一个新的服务器作为Leader服务器。「在重新选举Leader服务器的过程中,事务请求会被挂起,选举完Leader服务器之后才会执行这些请求」。即为了保证一致性,放弃了系统的可用性

AP

「当选择AP时,相当于放弃系统一致性,换取可用性」。eureka是选择了AP的系统

和zookeeper集群中有三种角色不同的是,eureka集群中每个节点扮演相同的角色,他们通过互相注册的方式来感知对方的存在,当有注册信息时,他们会同步给集群内的其他节点。

下面我从源码角度分析一下eureka是如何放弃一致性来保证可用性的(放心,不会放源码的,说一下大概思路。源码也比较简单,有兴趣的可以看我写的博客https://blog.csdn.net/zzti_erlie/article/details/104088914)

eureka注册中心的信息保存在AbstractInstanceRegistry类的成员变量中

// AbstractInstanceRegistry private final ConcurrentHashMap>> registry  = new ConcurrentHashMap>>();

就是一个双层map,这个双层map也很好理解。最外层是服务名,里面是一个具体的实例名

当有服务往eureka上注册时,注册信息会被保存在map中,同时会把信息同步给其他的节点。此时有可能有些节点不可用了,或者网络故障,并没有收到信息,此时集群节点内的信息可能是不一致的。

当客户端从某个eureka节点获取信息失败,或者注册失败,会自动切换到另一个eureka节点。只要有一台eureka节点可用,就能保证注册服务可用。

Zookeeper和Eureka的区别

最后总结一下两者的区别

ZookeeperEureka
设计原则CPAP
优点数据最终一致服务高可用
缺点选举leader过程中集群不可用服务节点间的数据可能不一致
适用场景对数据一致性要求较高对注册中心服务可用性要求较高

感谢各位的阅读,以上就是"Zookeeper和Eureka的区别是什么"的内容了,经过本文的学习后,相信大家对Zookeeper和Eureka的区别是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

系统 节点 一致 服务 分布式 一致性 可用性 数据 信息 集群 服务器 网络 选举 事务 选择 之间 定理 角色 容错 保证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 互联网科技财经 奇士达互联网科技 深圳天众互联网科技公司 润盈互联网科技 一五八零互联网科技 互联网科技大会案例 恒生科技互联网指数分析 互联网公司会议桌创意科技软装饰 互联网科技教育视频 湖北码尼互联网科技有限公司电话 宝灵互联网科技有限公司 赶超互联网科技 微信多开 速维有品互联网信息科技(苏州)有限公司 恒生互联网科技业指数调整周期 无锡工业互联网科技有限公司 宁波跨境商互联网科技有限公司 科技互联网行业投资研究 互联网科技手机排行榜 中国科技和美国互联网 互联网 卓越科技 亿策互联网科技 凡科互联网科技 壹账通互联网科技 人人互联网科技是培训 湖南洣水互联网科技有限公司扣款 呼和浩特新华互联网科技学院 互联网硬科技公司 兰石爱特工业互联网科技分公司 北京军民互联网科技公司
0