切换主题
☁️ Nacos 注册与实例管理
Mock 进程可作为普通服务实例注册到 Nacos,供下游按服务名发现与直连(常用于把 Mock 顶替 / 并存真实下游服务)。管理后台「Nacos 注册」页提供注册开关、实例下线 / 上线 / 注销与同服务实例列表等管理能力。
注册机制
- 注册名:默认按服务管理(HTTP Mock → 服务)中每个启用服务注册,注册名取服务的
nacosServiceName(留空时用服务名name);若配置了nacos.serviceName则固定只注册这一个服务名 - 注册地址:注册 IP 默认自动探测本机局域网 IP(可用
nacos.ip覆盖);注册端口默认取代理端端口proxy.port(可用nacos.port覆盖) - 临时实例:默认
ephemeral: true,通过心跳保活,进程退出后自动摘除 - 独占模式:
autoOfflineOthers: true(默认)时,注册后持续监视并自动下线同服务新上线的其他实例,保证本实例独占该服务名流量
配置
在 config.yaml 中启用注册即可(参数说明见 配置详解 → nacos):
yaml
nacos:
enabled: true # 启用注册
serverAddr: 192.168.3.181:8848
namespaceId: dev # public 留空
group: dev
username: nacos # 服务端开启鉴权时必填
password: nacos
autoOfflineOthers: true # 独占服务:自动下线同服务其他实例1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
若希望不同服务注册到不同服务名,在「HTTP Mock → 服务」中为服务填写 Nacos 注册名(nacosServiceName):
| 字段 | 说明 |
|---|---|
| Nacos 注册名 | 注册到 Nacos 的服务名,留空默认使用服务名称 |
管理后台「Nacos 注册」页
顶部状态
| 控件 | 说明 |
|---|---|
| 启用注册(开关) | 运行时开关,关闭后实例从 Nacos 注销(或保持下线状态)并停止心跳 |
| 重新注册 | 按当前配置重新注册本实例 |
| 注销当前实例 | 将本实例从注册中心注销(删除实例,心跳停止) |
状态卡展示:服务端地址、注册的服务名、分组、命名空间、注册地址(IP:端口)、集群、权重、是否临时实例、是否独占(自动下线其他实例)、最近同步时间。
同服务实例列表
选择服务名后展示该服务在注册中心的全部实例(管理视图,含已下线实例):
| 列 | 说明 |
|---|---|
| IP / 端口 / 集群 / 权重 | 实例注册信息 |
| 健康 | Nacos 健康检查状态 |
| 启用 | enabled 实例才参与服务发现;已下线实例标记为「否」 |
| 临时 | 是否为临时实例(心跳保活) |
| 标识 | 「当前实例」标记本进程注册的实例 |
操作区支持对选中实例批量下线 / 上线,行内操作按钮按实例当前状态自动切换为「下线」或「上线」。
下线与上线的语义
- 下线(enabled=false):实例保留在注册中心、原注册连接与心跳不断,只是不再被服务发现命中;不是注销 / 删除
- 上线(enabled=true):把已下线的同服务实例重新置为启用,恢复参与服务发现
- 生效异步窗口:管理通道操作返回成功后,状态收敛最长约 3 秒;页面按此轮询确认后才提示成功,避免「点了没生效」误判
- 上线 / 下线操作针对服务内的其它实例(可批量),本实例自身请用「注销当前实例」
相关 API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/nacos/status | 当前实例注册状态 |
| POST | /api/nacos/toggle | 启用 / 停用注册({enabled}) |
| POST | /api/nacos/register | 重新注册本实例 |
| POST | /api/nacos/deregister | 注销当前实例 |
| GET | /api/nacos/instances | 同服务实例列表(?service=,可空取默认服务) |
| POST | /api/nacos/instances/offline | 批量下线指定实例({service, instances:[{ip,port,cluster}]}) |
| POST | /api/nacos/instances/online | 批量上线指定已下线实例(同上结构) |