角色
注册中心一般有三种角色:
- 服务提供者:启动时,向 Nacos 注册服务信息。
- 服务消费者:定时(间隔30s)拉取服务(pull),将拉取的信息缓存在服务列表中。同时 Nacos 发现服务信息变更,会主动推送变更消息 (push)。
- 注册中心:Nacos 。

实例
Nacos 会将服务提供者划分为 临时实例
和 非临时实例
,Nacos 对这两种实例的健康监测是不一样的。默认情况下:所有的实例都是临时实例。推荐临时实例,非临时实例对服务器压力大。
- 临时实例:采用心跳监测。如果服务不存在,从列表中删除。
- 非临时实例:Nacos 发起请求检测。如果服务不存在,并不会从列表中删除,而是标记不健康,等待恢复健康。
配置非临时实例,通过更改项目配置
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
cluster-name: GZ
namespace: 62c75d23-5839-45db-bec9-8747fdcef332 # 命名空间ID
ephemeral: false # 非临时实例

对比 Eureka
共同点
- 都支持服务发现
- 都支持服务者提供心跳方式做健康监测
不同点
- Nacos 支持服务端主动检测提供者状态:临时模式实例采用心跳模式,非临时模式采用主动检测模式
- Nacos 临时实例心跳不正常会被剔除,非临时实例不会被剔除
- Nacos 支持服务列表变更消息推送,服务列表更新及时
- Nacos 集群默认采用 AP 方式,当集群中存在非临时实例时,采用 CP 模式;Eureka 采用 AP 模式