--Nacos服务注册与发现的概述与原理--

news/2024/10/12 10:10:08

什么是 Nacos

官网中的概述:Nacos官网链接

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

简单来说Nacos就是一个开源的动态服务注册与发现、配置管理和服务管理平台。

Nacos的作用:

  1. 服务注册与发现:Nacos提供了服务注册中心的功能,能够帮助微服务架构中的各个服务实例进行注册与发现。通过Nacos,可以轻松地实现服务间的通信,无需手动维护服务地址列表。

  2. 配置管理:Nacos提供了统一的配置管理平台,可以集中管理所有微服务在不同环境下的配置信息。通过Nacos,可以实现动态更新配置,避免重启服务来生效配置修改,方便快捷。

  3. 服务健康检测:Nacos支持服务实例进行健康检查,能够主动感知服务是否可用。同时,Nacos可以实现通知已经注册的客户端。为开发者提供了便利,可以实时感知并做出相应的处理。

  4. 动态路由与负载均衡:Nacos可以作为动态路由的组件,通过实时更新服务实例的状态和配置信息,实现负载均衡和流量控制等功能。提高了服务的稳定性和性能。

  5. 事件驱动编程:Nacos基于事件驱动的机制,当服务实例发生变更时(如上线、下线、配置修改等),Nacos可以实时通知已经注册的客户端。为开发者提供了便利,可以实时感知并做出相应的处理。

Nacos的原理:

  1. 服务注册:当一个服务启动时,它会将自己的元数据 (如IP地址、端口、健康状态等) 发送给Nacos注册中心,并且与注册中心建立长连接。这样,注册中心就知道每个服务的存在和相关信息。

  2. 服务发现:其他需要调用某个服务的服务或者客户端可以通过向Nacos注册中心发送查询请求来获取目标服务的实力列表。注册中心维护了所有以注册服务实例的元数据,并在需要时对外提供查询接口。

  3. 心跳与健康检查:注册中心会定期向各个服务实例发送心跳请求,用以检测服务是否在线。如果某个服务实例在一定时间内没有发送心跳,注册中心会将其标记为不可用,并且从服务列表中移除。

  4. 负载均衡:当服务调用方从注册中心获取到多个可用的服务实例是,它可以使用负载均衡算来选择合适的服务实例进行调用,从而实现负载均衡。

  5. 服务变更通知:当有服务上线、下线或者发生配置变更时,注册中心会向订阅该服务的客户端发送变更通知。客户端收到通知后,可以更新本地服务列表,从而及时感知服务的变化。

流程图:

流程如下:

  • 服务启动时就会注册自己的服务信息(服务名、IP、端口)到注册中心

  • 调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署)

  • 调用者自己对实例列表负载均衡,挑选一个实例

  • 调用者向该实例发起远程调用

当服务提供者的实例宕机或者启动新实例时,调用者如何得知呢?

  • 服务提供者会定期向注册中心发送请求,报告自己的健康状态(心跳请求)

  • 当注册中心长时间收不到提供者的心跳时,会认为该实例宕机,将其从服务的实例列表中剔除

  • 当服务有新实例启动时,会发送注册服务请求,其信息会被记录在注册中心的服务实例列表

  • 当注册中心服务列表变更时,会主动通知微服务,更新本地服务列表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/70562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

E64 树形DP P3174 [HAOI2009] 毛毛虫

视频链接:E64 树形DP P3174 [HAOI2009] 毛毛虫_哔哩哔哩_bilibili P3174 [HAOI2009] 毛毛虫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 树形DP O(n) #include <iostream> #include <cstring> #include <algorithm> using namespace std;const int …

NocoBase 与 Appsmith:哪个低代码平台更适合你?

深入了解 NocoBase 和 Appsmith 这两大低代码/无代码开发平台的关键差异。通过我们的深度对比,全面了解它们在数据管理、集成能力、UI/UX 设计等方面的优劣,帮助您选择更适合的开发工具。欢迎回到我们深度对比系列文章,这是本系列的第三篇。在之前我们已经与两个非常优秀的产…

使用 InstallShield 2020 打包项目 安装程序

打开InstallShield 2020程序,单击New填写信息下一步 打包成功效果 注:打包过程中报错,进行如下设置

H3C交换机SSH使用RSA公钥免密登录配置

1.使用puttygen.exe计算RSA 2.保存公钥和私钥 公钥:pub.key 注意:公钥上传到交换机(FTP等方式)。 私钥:private.ppk 3.配置交换机 <Switch> system-view [Switch] public-key local create rsa The range of public key size is (512 ~ 2048). If the key modulus …

AD9129板卡设计原理图:303-两路5.6Gsps 14bit DA FMC子卡

一、板卡概述 FMC303可实现宽波段、双通道、14位、5.6GSPS(2.8gsps直接射频综合)DAC功能,时钟可采用内部时钟源(可选择锁定到外部参考),或外部提供的采样时钟。此外还为用户提供定制采样控制的触发器输入。FMC303在机械上和电气上符合FMC标准(ANSI/VITA 57.1)。该卡具有…

Camstar : The remote server returned an error. (500) intemal Server Error.

这个报错让人摸不着头脑。 过程:安装CamstarEnterprise,新建了数据库,配置了managementStudio,Create database,然后放最新的mdb,update wcf server,放好最新的camstarPort代码。登录-->报错。 mdb是有电子套件内容的,但是呢,我还么有执行安装电子套件,想着先登录…

.NET程序获取当前IP经纬度,并通过经纬度实现天气查询功能

创建一个.net 8的webapi项目备用 编辑一个实体类,该实体类用于存储获取ip地址的经纬度数据使用 继续编辑三个类,用来存储对应经纬度的具体天气数据包: 改造默认的天气控制器,里面写成我们自己的。例如先写个获取IP的经纬度坐标的请求 运行一下,看下现在的效果,可以看…

公司网站如何修改图片

要修改公司网站上的图片,你可以按照以下步骤操作:备份原图:在修改任何图片之前,确保先备份原始图片。这有助于防止在修改过程中丢失原始数据。选择合适的工具:根据你需要进行的修改类型选择合适的工具。例如,如果只是简单的尺寸调整,可以使用在线工具如 Canva 或者本地软…