[Nacos] Nacos Client重要Api (一)

Nacos是一个提供配置管理和服务发现功能的平台。NacosNamingService接口是客户端与服务器交互的核心,支持服务的注册、注销、订阅和取消订阅等操作。实例分为临时和持久两种,临时实例仅存储在内存中,依赖客户端心跳维持,而持久实例则会持久化到磁盘,健康检查由服务器执行。Nacos数据模型涉及namespace、group、cluster和instance的层次结构,用于组织服务和资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Instance:实例,代表一个Nacos Client主机实例。
  • ServiceInfo:微服务信息实例。其包含着一个Instance列表。
  • NamingService: 该接口只有一个实现类,NacosNamingService。通过这个类的实例,可以完成Client与Server间的通信,例如注册/取消注册,订阅/取消订阅,获取Server状态,获取Server中指定的Instance。

1.Nacos系统架构

在这里插入图片描述

Config Service
Naming Service
Nacos Core
OpenAI

Provider App
Consumer App
Name Server

2.Nacos数据模型

Name Server用于记录各个命名空间namespace中的实例信息。namespace、group与服务service或资
源dataId间的关系如下图。

在这里插入图片描述

在这里插入图片描述

DEFAULT_GROUP%40%40abcmsc-provider-depart@@DEFAULT
即 groupId@@微服务名称@@clusterName

namespace、group、cluster、instance之间的关系如下图。

在这里插入图片描述

3.Nacos临时与持久实例

在服务注册时有一个属性ephemeral用于描述当前实例在注册时是否以临时实例出现。为true则为临时
实例,默认值;为false则为持久实例。

在这里插入图片描述

临时实例与持久实例的实例的存储位置与健康检测机制是不同的。

  • 临时实例:默认情况。服务实例仅会注册在Nacos内存,不会持久化到Nacos磁盘。其健康检测机制为Client模式,即Client主动向Server上报其健康状态(类似于推模式)。默认心跳间隔为5秒。在15秒内Server未收到Client心跳,则会将其标记为“不健康”状态;在30秒内若收到了Client心跳,则重新恢复“健康”状态,否则该实例将从Server端内存清除。即对于不健康的实例,Server会自动清除。
  • 持久实例:服务实例不仅会注册到Nacos内存,同时也会被持久化到Nacos磁盘。其健康检测机制为Server模式,即Server会主动去检测Client的健康状态(类似于拉模式),默认每20秒检测一次。健康检测失败后服务实例会被标记为“不健康”状态,但不会被清除,因为其是持久化在磁盘的。其对不健康持久实例的清除,需要专门进行。

临时实例适合于存在突发流量暴增可能的互联网项目。因为临时实例可以实现弹性扩容。

4.Nacos重要Api

Instance类: 实例,代表一个Nacos Client主机实例。

在这里插入图片描述

ServiceInfo类: 微服务信息实例。其包含着一个Instance列表。

在这里插入图片描述

NamingService: 该接口只有一个实现类,NacosNamingService。通过这个类的实例,可以完成Client与Server间的通信,例如注册/取消注册,订阅/取消订阅,获取Server状态,获取Server中指定的Instance。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值