前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >面试系列之-Eureka和Nacos的区别

面试系列之-Eureka和Nacos的区别

作者头像
用户4283147
发布于 2023-11-20 06:59:46
发布于 2023-11-20 06:59:46
5560
举报
文章被收录于专栏:对线JAVA面试对线JAVA面试
架构设计

Eureka采用CS架构,由服务注册中心Eureka Server和服务提供者/消费者Eureka Client组成;Nacos采用高可用的P2P设计(无主节点),所有的server节点都是同等作用,支持AP和CP两种模式;

通信方式

Eureka基于HTTP RESTful API进行通信;Nacos同时支持HTTP和TCP两种通信方式,TCP方式效率更高,适用于服务间通信;

服务发现

Eureka基于拉模式,Eureka Client会定期从Server拉取服务信息;Nacos基于推送模式,Server会实时推送服务信息变化给Client,AP模式下更适合大规模服务规模。

Eureka:通过注册中心定期拉取服务列表,有缓存,默认每30秒拉取一次。

Nacos:推送式服务列表更新,注册中心每次服务列表变化都会实时推送给订阅者,服务端和客户端保持心跳连接;

健康检查

Eureka只支持基于HTTP的健康检查。Nacos同时支持HTTP和TCP两种健康检查,TCP连接方式可以更精确判断实例是否可用。

Eureka:支持HTTP健康检查,客户端定期(默认每30秒)向服务端发起HTTP请求,以此来判断服务是否可用。

Nacos:支持HTTP和TCP两种健康检查方式;TCP方式通过socket连接来判断服务健康性,更加准确。

元数据

Eureka的元数据信息较简单;Nacos的元数据更丰富,支持服务分类、权重、健康状态等信息;

隔离机制

Eureka只有区域(region)和区域(zone)两级隔离机制;Nacos通过namespace、group和service三级来实现隔离,更加细粒度;

流量控制

Eureka没有流量控制功能;Nacos支持对服务的流量、实例数和权重进行精细化控制,用于金丝雀发布、蓝绿部署等场景。

高可用机制

Eureka采用主备模式实现高可用,一个主节点和多个备份节点。主节点失效时,备份节点进行选举产生新的主节点,这种模式下,主节点压力较大;

Nacos采用无主节点设计,所有的节点都是平等的,通过Raft协议实现高可用;多个节点会选举出Leader,但Leader也参与服务注册和查询等工作,压力较小;当Leader失效时,会重新选举产生新的Leader节点,整个服务不会中断;

数据同步

Eureka通过备份节点定期从主节点拉取注册表信息进行同步,这种拉模式下,主备节点数据无法做到实时一致;。

Nacos通过Raft协议实现数据同步,许多机制保证数据强一致,如入队出队机制、Commit机制、Snapshot机制等。Leader节点数据更新后,很快就会复制到Follower节点,数据实时一致;

CAP理论

根据CAP理论,Eureka属于AP系统,可以保证高可用性和分区容错性,但无法保证数据强一致性;

Nacos可以切换AP和CP两种模式:

AP模式:用于生产环境,可以保证高可用性和分区容错性;

CP模式:用于测试环境,可以保证数据一致性和分区容错性,但会损失一定高可用性;

Spring Cloud集成

Eureka深度集成于Spring Cloud,开箱即用

Eureka通过spring-cloud-starter-netflix-eureka可以轻松嵌入Spring Cloud应用;

Nacos可以通过Spring Cloud Alibaba来实现集成,需要自行引入依赖;

Nacos可以通过spring-cloud-starter-alibaba-nacos-discovery集成到Spring Cloud应用中,但需要额外引入spring-cloud-starter-alibaba-nacos-config来配置Nacos地址等信息,配置较为繁琐;

Nacos在机制设计和理论基础上都超过了Eureka,其无主节点设计、强数据一致性和CAP切换都很值得学习。但Eureka简单易用,Spring Cloud集成也更加微服,因此也依然有其存在的意义;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 对线JAVA面试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
普通springcloud eureka 和 spring cloud Alibaba nacos 注册中心
-------------------------------------普通springcloud eureka
FHAdmin
2021/10/14
5550
ZooKeeper、Eureka、Consul 、Nacos,微服务注册中心怎么选?
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/05/27
9670
ZooKeeper、Eureka、Consul 、Nacos,微服务注册中心怎么选?
面试系列之-Nacos原理
nacos通过使用Raft算法来实现服务列表的同步和高并发访问。Raft算法是一种分布式一致性算法,能够保证在网络分区、服务器崩溃等异常情况下,系统仍能够保持强一致性。
用户4283147
2023/11/20
9920
面试系列之-Nacos原理
ZooKeeper、Eureka、Consul 、Nacos微服务注册中心对比
服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。
IT大咖说
2019/12/24
8.4K0
ZooKeeper、Eureka、Consul 、Nacos微服务注册中心对比
微服务架构中的服务注册与发现有哪些?Zookeeper、Eureka、Nacos、Consul 都有什么区别,实现原理是什么?
随着单体应用的拆分,我们面临的首要问题就是采用哪种方式实现服务间的调用,像之前单体应用可能直接在配置或数据库保存调用方的域名 IP 信息等。
码哥字节
2025/01/09
2150
微服务架构中的服务注册与发现有哪些?Zookeeper、Eureka、Nacos、Consul 都有什么区别,实现原理是什么?
面试官:ZooKeeper、Eureka、Consul、Nacos各自的区别是什么?
服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。
业余草
2021/12/06
3.7K0
面试官:ZooKeeper、Eureka、Consul、Nacos各自的区别是什么?
详解Nacos和Eureka的区别「建议收藏」
Eureka 是Spring Cloud 微服务框架默认的也是推荐的服务注册中心, 由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用于实现AWS云的中服务定位,以实现中间层服务器的负载均衡和故障转移,遵循着CAP理论中的A(可用性)P(分区容错性)
全栈程序员站长
2022/09/24
3.4K0
详解Nacos和Eureka的区别「建议收藏」
Nacos概念和功能介绍,与Eureka&Apollo&Zookeeper的比较
Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。
chenchenchen
2022/03/09
2.5K0
Nacos概念和功能介绍,与Eureka&Apollo&Zookeeper的比较
万字+20张图探秘Nacos注册中心核心实现原理
虽然Nacos最新版本已经到了2.x版本,但是为了照顾那些还在用1.x版本的同学,所以本文我会同时去讲1.x版本和2.x版本的实现
三友的java日记
2024/01/03
1.9K0
万字+20张图探秘Nacos注册中心核心实现原理
SpringCloud 常见注册中心的比较
springcloud是一个非常优秀的微服务框架,要管理众多的服务,就需要对这些服务进行治理,也就是我们说的服务治理,服务治理的作用就是在传统的rpc远程调用框架中,管理每个服务与每个服务之间的依赖关系,可以实现服务调用、负载均衡、服务容错、以及服务的注册与发现。 如果微服务之间存在调用依赖,就需要得到目标服务的服务地址,也就是微服务治理的服务发现。要完成服务发现,就需要将服务信息存储到某个载体,载体本身即是微服务治理的服务注册中心,而存储到载体的动作即是服务注册。 springcloud支持的注册中心有Eureka、Zookeeper、Consul、Nacos
BUG弄潮儿
2021/06/25
2K0
SpringCloud 常见注册中心的比较
微服务注册中心技术选型:5种主流注册中心,哪个最香?
对于注册中心,在写这篇文章前,我其实只对ETCD有比较深入的了解,但是对于Zookeeper和其它的注册中心了解甚少,甚至都没有考虑过ETCD和Zookeeper是否适合作为注册中心。
猫头虎
2024/04/08
3.7K0
微服务注册中心技术选型:5种主流注册中心,哪个最香?
Nacos 和 Eureka 对比,项目中该如何选择服务注册中心
Nacos 和 Eureka 都是广泛应用于微服务架构中的服务注册与发现组件,它们的核心功能均包括服务注册、服务发现以及服务健康状况的维护。下面是对两者在原理上的一些关键区别进行解析:
用户7353950
2024/04/30
7070
Nacos 和 Eureka 对比,项目中该如何选择服务注册中心
5000 字 | 14 图 | 揭秘 Nacos 的 AP 架构 「Distro 一致性协议」
这次我们要进入 Nacos 的一致性底层原理了,还是先来一张架构图,让大家对 Nacos 的架构有个整体的印象,本篇会主要讲解一致性模块中的 Distro 协议。
悟空聊架构
2022/05/13
1.9K0
5000 字 | 14 图 | 揭秘 Nacos 的 AP 架构 「Distro 一致性协议」
【知识总结】6.服务注册发现框架比较(Consul/Zookeeper/etcd/Eureka)
服务发现就是服务提供者将自己提供的地址post或者update到服务中介,服务消费者从服务中介那里get自己想要的服务的地址。
辉哥
2021/03/11
2.2K0
【知识总结】6.服务注册发现框架比较(Consul/Zookeeper/etcd/Eureka)
Nacos跟Eureka的区别
Eureka和Nacos都是服务注册与发现的组件,都支持服务注册和服务拉取,都支持服务提供者心跳方式做健康检测,
一个风轻云淡
2024/02/15
6540
springcloud2-注册中心eureka及nacos
1,课程回顾 2,本章重点 eureka注册中心 nacos注册中心 3,具体内容
张哥编程
2024/12/13
1330
springcloud2-注册中心eureka及nacos
一文读懂Nacos与Eureka的区别
Springcloud eureka是注册中心,负责微服务的注册与发现,起到承上启下的作用,在微服务架构中相当于人体的 大脑,很重要,nacos是阿里巴巴出的,功能类似eureka。
用户7353950
2022/05/11
23.3K0
一文读懂Nacos与Eureka的区别
微服务平滑迁移注册中心 Eureka 到 Nacos
陈某的《Spring Cloud Alibaba实战项目》 视频教程已经录完了,涉及到Alibaba的各种中间件实战,戳这里--->Spring Cloud Alibaba 实战 视频专栏 开放订阅~
码猿技术专栏
2023/05/01
6920
微服务平滑迁移注册中心 Eureka 到 Nacos
主流服务注册中心横评
谈到服务治理,就不得不小了解一下CAP理论 ,因为一般都是分布式框架,才会有服务治理的概念,而CAP理论是分布式架构中重要理论
呆呆
2021/08/01
4220
配置中心————Nacos
Nacos是一个基于云原生架构的动态服务发现、配置管理和服务治理平台。支持多种编程语言和多种部署方式,并且与Spring Cloud等主流的微服务框架深度集成。
ma布
2024/11/21
5330
配置中心————Nacos
推荐阅读
相关推荐
普通springcloud eureka 和 spring cloud Alibaba nacos 注册中心
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档