[转帖]Nacos和Eureka的区别

nacos,eureka,区别 · 浏览次数 : 0

小编点评

**Eureka 架构图** **服务注册(register):** * Eureka Client 通过发送 REST 请求向 Eureka Server 注册自身服务。 * 注册时提供服务的信息,例如 IP 地址、端口、运行状况指标等。 **服务续约(renew):** * Eureka Client 定期向 Eureka Server发送心跳消息,表示服务还在可用状态。 * 默认每隔 30 秒发送一次心跳。 **获取服务列表(get registry):** * 服务消费者在启动时发送请求获取注册中心的服务清单。 * 客户端缓存服务清单,以提高效率。 **服务调用:** * 服务消费者根据服务清单中的信息,找到该服务的地址并进行访问。 **服务下线(cancel):** * 当 Eureka Client 需要关闭或重启时,需要先发送 REST 请求告诉 Eureka Server服务要下线。 * Eureka Server 在收到请求后,设置该服务状态为下线(DOWN)。 **失效剔除(evict):** * 服务实例可能会因为网络故障等原因无法提供服务,需要有服务剔除机制。 * Eureka Server 定期从服务清单中剔除超时或不可用的实例。

正文

Eureka架构图:
在这里插入图片描述
Eureka架构图

1.服务注册(register):Eureka Client会通过发送REST请求的方式,向Eureka Server注册自己的服务。注册时,提供自身的元数据,比如ip地址、端口、运行状况指标、主页地址等信息。Eureka Server接收到注册请求后,就会把这些元数据信息存储在一个双层的Map中。 什么时候注册?在启动微服务的时候。

2.服务续约(renew):在服务注册后,Eureka Client会维护一个心跳来持续通知Eureka Server,说明服务一直处于可用状态,防止被剔除。默认每隔30秒eureka.instance.lease-renewal-interval-in-seconds 发送一次心跳来进行服务续约。

3.获取服务列表(get registry):服务消费者(Eureka Client)在启动的时候,会发送一个REST请求给Eureka Server,获取注册中心的服务清单,并且缓存在客户端本地。同时,为了性能及安全性考虑,Eureka Server会每隔30秒更新一次缓存中的服务清单。

4.服务调用:服务消费者在获取到服务清单后,可以根据清单中的服务信息,查找到该服务的地址,从而进行访问(远程调用)。

6.服务下线(cancel):当Eureka Client需要关闭或重启时,就不希望在这个时间段内再有请求进来,所以,就需要提前先发送REST请求给EurekaServer,告诉Eureka Server自己要下线了,Eureka Server在收到请求后,就会把该服务状态置为下线(DOWN),并把该下线事件传播出去。

7.失效剔除(evict):服务实例可能会因为网络故障等原因,导致不能提供服务,而此时该实例也没有发送请求给Eureka Server来进行服务下线。所以,还需要有服务剔除的机制。Eureka Server在启动的时候会创建一个定时任务,每隔一段时间(默认60秒),从当前服务清单中把超时没有续约(默认90秒eureka.instance.lease-expiration-duration-inseconds)的服务剔除。
Nacos架构图:
在这里插入图片描述
Nacos架构图

服务管理:实现服务CRUD,域名CRUD,服务健康状态检查,服务权重管理等功能

一致性协议:解决不同数据,不同一致性要求情况下,不同一致性机制

OpenAPI:暴露标准Rest风格HTTP接口,简单易用,方便多语言集成

Console:易用控制台,做服务管理、配置管理等操作

Nacos与Eureka自我保护机制对比

相同点:保护阈值都是个比例,0-1 范围,表示健康的 instance 占全部instance 的比例。

不同点:

1)保护方式不同

Eureka保护方式:当在短时间内,统计续约失败的比例,如果达到一定阈值,则会触发自我保护的机制,在该机制下,Eureka Server不会剔除任何的微服务,等到正常后,再退出自我保护机制。自我保护开关(eureka.server.enable-self-preservation: false)

Nacos保护方式:当域名健康实例 (Instance) 占总服务实例(Instance) 的比例小于阈值时,无论实例 (Instance) 是否健康,都会将这个实例 (Instance) 返回给客户端。这样做虽然损失了一部分流量,但是保证了集群的剩余健康实例 (Instance) 能正常工作。

2)范围不同

Nacos 的阈值是针对某个具体 Service 的,而不是针对所有服务的。但 Eureka的自我保护阈值是针对所有服务的。

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览85444 人正在系统学习中

与[转帖]Nacos和Eureka的区别相似的内容:

[转帖]Nacos和Eureka的区别

Eureka架构图: Eureka架构图 1.服务注册(register):Eureka Client会通过发送REST请求的方式,向Eureka Server注册自己的服务。注册时,提供自身的元数据,比如ip地址、端口、运行状况指标、主页地址等信息。Eureka Server接收到注册请求后,就会

[转帖]nacos discovery和config

微服务和nacos版本都在2.x及之后。 1、discovery用于服务注册,将想要注册的服务注册到nacos中,被naocs发现。 pom引入的依赖是: yml配置文件中: 2、config用于获取nacos配置管理->配置列表下配置文件中的内容 pom引入的依赖是: 获取nacos的配置有三种方

[转帖]springcloud nacos配置

配置文件中的nacos配置,discovery和config配置项 版本: 2.3.2.RELEASE Hoxton.SR9

[转帖]Nacos 是什么?

https://my.oschina.net/u/4526289/blog/5605693 摘要:Nacos 是 Dynamic Naming and Configuration Service 的首字母简称,相较之下,它更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 本文分享自华为云

[转帖]Nacos的版本支持情况

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E 由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业

[转帖]MSE注册配置中心和自建注册配置中心对比

https://help.aliyun.com/document_detail/469154.html?spm=a2c4g.11186623.0.0.1a2779a6aPjzic 本文从运维、性能、高可用、监控告警等维度进行分析,介绍MSE注册配置中心和自建注册配置中心的差异。 MSE Nacos和

[转帖]Spring Cloud Alibaba Nacos 注册中心使用教程

一. 什么是Nacos Nacos是一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台,集注册中心+配置中心+服务管理于一身,基本特性如下: 服务发现和服务健康监测; 动态配置服务; 动态 DNS 服务; 服务及其元数据管理

[转帖]关于Nacos默认token.secret.key及server.identity风险说明及解决方案公告

https://nacos.io/zh-cn/blog/announcement-token-secret-key.html 近期Nacos社区收到关于Nacos鉴权功能通过token.secret.key默认值进行撞击,绕过身份验证安全漏洞的问题。社区在2.2.0.1和1.4.5版本已移除了自带的

[转帖]nacos修改密码

https://www.cnblogs.com/cherish-code/p/14765862.html nacos修改默认的用户名密码 修改配置文件, vim nacos/conf/application.properties 在配置文件加入如下: spring.datasource.platfo

[转帖]nacos开启强鉴权

注意 Nacos是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。 Nacos提供简单的鉴权实现,为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系。 如果运行在不可信的网络环境或者有强鉴权诉求,请参考官方简单实现做替换增强。 鉴权 服务端如何开启鉴权 非