Open API 指南
Nacos 2.X 版本兼容 Nacos1.X 版本的OpenAPI, 请参考文档Nacos1.X OpenAPI使用。
注意:未特殊注明支持版本的OpenAPI均从2.2.0版本开始支持。
文档约定
配置管理
服务发现
命名空间
集群管理
连接负载管理
文档规定
API 统一返回体格式
2.0版本Open API,所有接口请求的响应均为json
类型的返回体,返回体具有相同的格式
{
"code": 0,
"message": "success",
"data": {}
}
返回体中各字段的含义如下表所示
名称 | 类型 | 描述 |
---|---|---|
code | int | 错误码,0 代表执行成功,非0 代表执行失败的某一种情况 |
message | String | 错误码提示信息,执行成功为"success " |
data | 任意类型 | 返回数据,执行失败时为详细出错信息 |
由于执行成功的情况下code字段与message字段相同,后续在介绍接口的返回结果时,只介绍返回数据的data字段
API 错误码汇总
API接口返回体中的错误码及对应提示信息汇总见下表
错误码 | 提示信息 | 含义 |
---|---|---|
0 | success | 成功执行 |
10000 | parameter missing | 参数缺失 |
10001 | access denied | 访问拒绝 |
10002 | data access error | 数据访问错误 |
20001 | 'tenant' parameter error | tenant 参数错误 |
20002 | parameter validate error | 参数验证错误 |
20003 | MediaType Error | 请求的MediaType 错误 |
20004 | resource not found | 资源未找到 |
20005 | resource conflict | 资源访问冲突 |
20006 | config listener is null | 监听配置为空 |
20007 | config listener error | 监听配置错误 |
20008 | invalid dataId | 无效的dataId (鉴权失败) |
20009 | parameter mismatch | 请求参数不匹配 |
21000 | service name error | serviceName 服务名错误 |
21001 | weight error | weight 权重参数错误 |
21002 | instance metadata error | 实例metadata 元数据错误 |
21003 | instance not found | instance 实例不存在 |
21004 | instance error | instance 实例信息错误 |
21005 | service metadata error | 服务metadata 元数据错误 |
21006 | selector error | 访问策略selector 错误 |
21007 | service already exist | 服务已存在 |
21008 | service not exist | 服务不存在 |
21009 | service delete failure | 存在服务实例,服务删除失败 |
21010 | healthy param miss | healthy 参数缺失 |
21011 | health check still running | 健康检查仍在运行 |
22000 | illegal namespace | 命名空间namespace 不合法 |
22001 | namespace not exist | 命名空间不存在 |
22002 | namespace already exist | 命名空间已存在 |
23000 | illegal state | 状态state 不合法 |
23001 | node info error | 节点信息错误 |
23002 | node down failure | 节点离线操作出错 |
... | ... | ... |
30000 | server error | 其他内部错误 |
配置管理
获取配置
接口描述
获取指定配置
请求方式
GET
请求URL
/nacos/v2/cs/config
请求参数
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
namespaceId | String | 否 | 命名空间,默认为public 与 '' 相同 |
group | String | 是 | 配置分组名 |
dataId | String | 是 | 配置名 |
tag | String | 否 | 标签 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | String | 配置内容 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/cs/config?dataId=nacos.example&group=DEFAULT_GROUP&namespaceId=public'
返回示例
{
"code": 0,
"message": "success",
"data": "contentTest"
}
发布配置
接口描述
发布指定配置
当配置已存在时,则对配置进行更新
请求方式
POST
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/cs/config
请求Body
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
namespaceId | String | 否 | 命名空间,默认为public 与 '' 相同 |
group | String | 是 | 配置组名 |
dataId | String | 是 | 配置名 |
content | String | 是 | 配置内容 |
tag | String | 否 | 标签 |
appName | String | 否 | 应用名 |
srcUser | String | 否 | 源用户 |
configTags | String | 否 | 配置标签列表,可多个,逗号分隔 |
desc | String | 否 | 配置描述 |
use | String | 否 | - |
effect | String | 否 | - |
type | String | 否 | 配置类型 |
schema | String | 否 | - |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'dataId=nacos.example' \
-d 'group=DEFAULT_GROUP' \
-d 'namespaceId=public' \
-d 'content=contentTest' \
-X POST 'http://127.0.0.1:8848/nacos/v2/cs/config'返回示例
{
"code": 0,
"message": "success",
"data": true
}
删除配置
接口描述
删除指定配置
请求方式
DELETE
请求URL
/nacos/v2/cs/config
请求参数
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
namespaceId | String | 否 | 命名空间,默认为public 与 '' 相同 |
group | String | 是 | 配置分组名 |
dataId | String | 是 | 配置名 |
tag | String | 否 | 标签 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -X DELETE 'http://127.0.0.1:8848/nacos/v2/cs/config?dataId=nacos.example&group=DEFAULT_GROUP&namespaceId=public'
返回示例
{
"code": 0,
"message": "success",
"data": true
}
查询配置历史列表
接口描述
获取指定配置的历史版本列表
请求方式
GET
请求URL
/nacos/v2/cs/history/list
请求参数
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
namespaceId | String | 否 | 命名空间,默认为public 与 '' 相同 |
group | String | 是 | 配置分组名 |
dataId | String | 是 | 配置名 |
pageNo | int | 否 | 当前页,默认为1 |
pageSize | int | 否 | 页条目数,默认为100 ,最大为500 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 分页查询结果 |
data.totalCount | int | 总数 |
data.pageNumber | int | 当前页 |
data.pagesAvailable | int | 总页数 |
data.pageItems | Object[] | 历史配置项列表,参见历史配置项信息 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/cs/history/list?dataId=nacos.example&group=com.alibaba.nacos&namespaceId='
返回示例
{
"code": 0,
"message": "success",
"data": {
"totalCount": 1,
"pageNumber": 1,
"pagesAvailable": 1,
"pageItems": [
{
"id": "203",
"lastId": -1,
"dataId": "nacos.example",
"group": "com.alibaba.nacos",
"tenant": "",
"appName": "",
"md5": "9f67e6977b100e00cab385a75597db58",
"content": "contentTest",
"srcIp": "0:0:0:0:0:0:0:1",
"srcUser": null,
"opType": "I",
"createdTime": "2010-05-04T16:00:00.000+0000",
"lastModifiedTime": "2020-12-05T01:48:03.380+0000"
}
]
}
}
查询具体版本的历史配置
接口描述
获取指定版本的历史配置
请求方式
GET
请求URL
/nacos/v2/cs/history
请求参数
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
namespaceId | String | 否 | 命名空间,默认为public 与 '' 相同 |
group | String | 是 | 配置分组名 |
dataId | String | 是 | 配置名 |
nid | long | 是 | 历史配置id |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 历史配置项 |
data.id | String | 配置id |
data.lastId | int | |
data.dataId | String | 配置名 |
data.group | String | 配置分组 |
data.tenant | String | 租户信息(命名空间) |
data.appName | String | 应用名 |
data.md5 | String | 配置内容的md5值 |
data.content | String | 配置内容 |
data.srcIp | String | 源ip |
data.srcUser | String | 源用户 |
data.opType | String | 操作类型 |
data.createdTime | String | 创建时间 |
data.lastModifiedTime | String | 上次修改时间 |
data.encryptedDataKey | String |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/cs/history?dataId=nacos.example&group=com.alibaba.nacos&namespaceId=&nid=203'
返回示例
{
"code": 0,
"message": "success",
"data": {
"id": "203",
"lastId": -1,
"dataId": "nacos.example",
"group": "com.alibaba.nacos",
"tenant": "",
"appName": "",
"md5": "9f67e6977b100e00cab385a75597db58",
"content": "contentTest",
"srcIp": "0:0:0:0:0:0:0:1",
"srcUser": null,
"opType": "I",
"createdTime": "2010-05-04T16:00:00.000+0000",
"lastModifiedTime": "2020-12-05T01:48:03.380+0000"
}
}
查询配置上一版本信息
接口描述
获取指定配置的上一版本
请求方式
GET
请求URL
/nacos/v2/cs/history/previous
请求参数
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
namespaceId | String | 否 | 命名空间,默认为public 与 '' 相同 |
group | String | 是 | 配置分组名 |
dataId | String | 是 | 配置名 |
id | long | 是 | 配置id |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 历史配置项,参见历史配置项信息 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/cs/history/previous?id=309135486247505920&dataId=nacos.example&group=com.alibaba.nacos&namespaceId='
返回示例
{
"code": 0,
"message": "success",
"data": {
"id": "203",
"lastId": -1,
"dataId": "nacos.example",
"group": "com.alibaba.nacos",
"tenant": "",
"appName": "",
"md5": "9f67e6977b100e00cab385a75597db58",
"content": "contentTest",
"srcIp": "0:0:0:0:0:0:0:1",
"srcUser": null,
"opType": "I",
"createdTime": "2010-05-04T16:00:00.000+0000",
"lastModifiedTime": "2020-12-05T01:48:03.380+0000"
}
}
查询指定命名空间下的配置列表
接口描述
获取指定命名空间下的配置信息列表
请求方式
GET
请求URL
/nacos/v2/cs/history/configs
请求参数
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
namespaceId | String | 是 | 命名空间 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object[] | 配置信息列表 |
data.id | String | 配置id |
data.dataId | String | 配置名 |
data.group | String | 配置分组 |
data.content | String | 配置内容 |
data.md5 | String | 配置内容的md5值 |
data.encryptedDataKey | String | |
data.tenant | String | 租户信息(命名空间) |
data.appName | String | 应用名 |
data.type | String | 配置文件类型 |
data.lastModified | long | 上次修改时间 |
返回数据中的配置信息只有
dataId
,group
,tenant
,appName
,type
字段有效,其他字段为默认值
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/cs/history/configs?namespaceId='
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": "0",
"dataId": "nacos.example",
"group": "com.alibaba.nacos",
"content": null,
"md5": null,
"encryptedDataKey": null,
"tenant": "",
"appName": "",
"type": "yaml",
"lastModified": 0
}
]
}
服务发现
注册实例
接口描述
注册一个实例
请求方式
POST
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/instance
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
ip | String | 是 | IP 地址 |
port | int | 是 | 端口号 |
clusterName | String | 否 | 集群名称,默认为DEFAULT |
healthy | boolean | 否 | 是否只查找健康实例,默认为true |
weight | double | 否 | 实例权重,默认为1.0 |
enabled | boolean | 否 | 是否可用,默认为true |
metadata | JSON格式String | 否 | 实例元数据 |
ephemeral | boolean | 否 | 是否为临时实例 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'serviceName=test_service' \
-d 'ip=127.0.0.1' \
-d 'port=8090' \
-d 'weight=0.9' \
-d 'ephemeral=true' \
-X POST 'http://127.0.0.1:8848/nacos/v2/ns/instance'返回示例
{
"code": 0,
"message": "success",
"data": true
}
注销实例
接口描述
注销指定实例
请求方式
DELETE
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/instance
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
ip | String | 是 | IP 地址 |
port | int | 是 | 端口号 |
clusterName | String | 否 | 集群名称,默认为DEFAULT |
healthy | boolean | 否 | 是否只查找健康实例,默认为true |
weight | double | 否 | 实例权重,默认为1.0 |
enabled | boolean | 否 | 是否可用,默认为true |
metadata | JSON格式String | 否 | 实例元数据 |
ephemeral | boolean | 否 | 是否为临时实例 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'serviceName=test_service' \
-d 'ip=127.0.0.1' \
-d 'port=8090' \
-d 'weight=0.9' \
-d 'ephemeral=true' \
-X DELETE 'http://127.0.0.1:8848/nacos/v2/ns/instance'返回示例
{
"code": 0,
"message": "success",
"data": true
}
更新实例
接口描述
修改实例信息
通过该接口更新的元数据拥有更高的优先级,且具有记忆能力;会在对应实例删除后,依旧存在一段时间,如果在此期间实例重新注册,该元数据依旧生效;您可以通过
nacos.naming.clean.expired-metadata.expired-time
及nacos.naming.clean.expired-metadata.interval
对记忆时间进行修改
请求方式
PUT
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/instance
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
ip | String | 是 | IP 地址 |
port | int | 是 | 端口号 |
clusterName | String | 否 | 集群名称,默认为DEFAULT |
healthy | boolean | 否 | 是否只查找健康实例,默认为true |
weight | double | 否 | 实例权重,默认为1.0 |
enabled | boolean | 否 | 是否可用,默认为true |
metadata | JSON格式String | 否 | 实例元数据 |
ephemeral | boolean | 否 | 是否为临时实例 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'serviceName=test_service' \
-d 'ip=127.0.0.1' \
-d 'port=8090' \
-d 'weight=0.9' \
-d 'ephemeral=true' \
-X PUT 'http://127.0.0.1:8848/nacos/v2/ns/instance'返回示例
{
"code": 0,
"message": "success",
"data": true
}
查询实例详情
接口描述
查询某个具体实例的详情信息
请求方式
GET
请求URL
/nacos/v2/ns/instance
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
clusterName | String | 否 | 集群名称,默认为DEFAULT |
ip | String | 是 | IP 地址 |
port | int | 是 | 端口号 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 实例详情信息 |
data.serviceName | String | 服务名 |
data.ip | String | IP 地址 |
data.port | int | 端口号 |
data.clusterName | String | 集群名称 |
data.weight | double | 实例权重 |
data.healthy | boolean | 是否健康 |
data.instanceId | String | 实例id |
data.metadata | map | 实例元数据 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/instance?namespaceId=public&groupName=&serviceName=test_service&ip=127.0.0.1&port=8080'
返回示例
{
"code": 0,
"message": "success",
"data": {
"serviceName": "DEFAULT_GROUP@@test_service",
"ip": "127.0.0.1",
"port": 8080,
"clusterName": "DEFAULT",
"weight": 1.0,
"healthy": true,
"instanceId": null,
"metadata": {
"value": "1"
}
}
}
查询指定服务的实例列表
接口描述
查询指定服务下的实例详情信息列表
请求方式
GET
请求URL
/nacos/v2/ns/instance/list
请求头
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
User-Agent | String | 否 | 用户代理,默认为空 |
Client-Version | String | 否 | 客户端版本,默认为空 |
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
clusterName | String | 否 | 集群名称,默认为DEFAULT |
ip | String | 否 | IP 地址,默认为空,表示不限制IP 地址 |
port | int | 否 | 端口号,默认为0 ,表示不限制端口号 |
healthyOnly | boolean | 否 | 是否只获取健康实例,默认为false |
app | String | 否 | 应用名,默认为空 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | 指定服务的实例列表 | |
data.name | String | 分组名@@服务名 |
data.groupName | String | 分组名 |
data.clusters | String | 集群名 |
data.cacheMillis | int | 缓存时间 |
data.hosts | Object[] | 实例列表 |
data.hosts.ip | String | 实例IP |
data.hosts.port | int | 实例端口号 |
data.hosts.weight | double | 实例权重 |
data.hosts.healthy | boolean | 实例是否健康 |
data.hosts.enabled | boolean | 实例是否可用 |
data.hosts.ephemeral | boolean | 是否为临时实例 |
data.hosts.clusterName | String | 实例所在的集群名称 |
data.hosts.serviceName | String | 服务名 |
data.hosts.metadata | map | 实例元数据 |
data.hosts.instanceHeartBeatTimeOut | int | 实例心跳超时时间 |
data.hosts.ipDeleteTimeout | int | 实例删除超时时间 |
data.hosts.instanceHeartBeatInterval | int | 实例心跳间隔 |
data.lastRefTime | int | 上次刷新时间 |
data.checksum | int | 校验码 |
data.allIPs | boolean | |
data.reachProtectionThreshold | boolean | 是否到达保护阈值 |
data.valid | boolean | 是否有效 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/instance/list?serviceName=test_service&ip=127.0.0.1'
返回示例
{
"code": 0,
"message": "success",
"data": {
"name": "DEFAULT_GROUP@@test_service",
"groupName": "DEFAULT_GROUP",
"clusters": "",
"cacheMillis": 10000,
"hosts": [
{
"ip": "127.0.0.1",
"port": 8080,
"weight": 1.0,
"healthy": true,
"enabled": true,
"ephemeral": true,
"clusterName": "DEFAULT",
"serviceName": "DEFAULT_GROUP@@test_service",
"metadata": {
"value": "1"
},
"instanceHeartBeatTimeOut": 15000,
"ipDeleteTimeout": 30000,
"instanceHeartBeatInterval": 5000
}
],
"lastRefTime": 1662554390814,
"checksum": "",
"allIPs": false,
"reachProtectionThreshold": false,
"valid": true
}
}
批量更新实例元数据
接口描述
批量更新实例的元数据,
对应元数据的键不存在时,则添加对应元数据
请求方式
PUT
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/instance/metadata/batch
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
consistencyType | String | 否 | 持久化类型,默认为空 |
instances | JSON格式String | 否 | 需要更新的实例列表,默认为空 |
metadata | JSON格式String | 是 | 实例元数据 |
参数说明
consistencyType
: 实例的持久化类型,当为‘persist
’,表示对持久化实例的元数据进行更新;否则表示对临时实例的元数据进行更新instances
: 待更新的实例列表,json
数组,通过ip+port+ephemeral+cluster
定位到某一实例,为空则表示更新指定服务下所有实例的元数据
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'serviceName=test_service' \
-d 'consistencyType=ephemeral' \
-d 'instances=[{"ip":"3.3.3.3","port": "8080","ephemeral":"true","clusterName":"xxxx-cluster"},{"ip":"2.2.2.2","port":"8080","ephemeral":"true","clusterName":"xxxx-cluster"}]' \
-d 'metadata={"age":"20","name":"cocolan"}' \
-X PUT 'http://127.0.0.1:8848/nacos/v2/ns/instance/metadata/batch'返回示例
{
"code": 0,
"message": "success",
"data": true
}
批量删除实例元数据
接口描述
批量删除实例的元数据,
对应元数据的键不存在时,则不做操作
请求方式
DELETE
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/instance/metadata/batch
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
consistencyType | String | 否 | 持久化类型,默认为空 |
instances | JSON格式String | 否 | 需要更新的实例列表,默认为空 |
metadata | JSON格式String | 是 | 实例元数据 |
参数说明
consistencyType
: 实例的持久化类型,当为‘persist
’,表示对持久化实例的元数据进行删除;否则表示对临时实例的元数据进行instances
: 待更新的实例列表,json
数组,通过ip+port+ephemeral+cluster
定位到某一实例,为空则表示更新指定服务下所有实例的元数据
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'serviceName=test_service' \
-d 'consistencyType=ephemeral' \
-d 'instances=[{"ip":"3.3.3.3","port": "8080","ephemeral":"true","clusterName":"xxxx-cluster"},{"ip":"2.2.2.2","port":"8080","ephemeral":"true","clusterName":"xxxx-cluster"}]' \
-d 'metadata={"age":"20","name":"cocolan"}' \
-X DELETE 'http://127.0.0.1:8848/nacos/v2/ns/instance/metadata/batch'返回示例
{
"code": 0,
"message": "success",
"data": true
}
创建服务
接口描述
创建一个服务
服务已存在时会创建失败
请求方式
POST
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/service
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
metadata | JSON格式String | 否 | 服务元数据,默认为空 |
ephemeral | boolean | 否 | 是否为临时实例,默认为false |
protectThreshold | float | 否 | 保护阈值,默认为0 |
selector | JSON格式String | 否 | 访问策略,默认为空 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'serviceName=nacos.test.1' \
-d 'ephemeral=true' \
-d 'metadata={"k1":"v1"}' \
-X POST 'http://127.0.0.1:8848/nacos/v2/ns/service'返回示例
{
"code": 0,
"message": "success",
"data": true
}
删除服务
接口描述
删除指定服务
服务不存在时会报错,且服务还存在实例时会删除失败
请求方式
DELETE
请求URL
/nacos/v2/ns/service
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -X DELETE 'http://127.0.0.1:8848/nacos/v2/ns/service?serviceName=nacos.test.1'
返回示例
{
"code": 0,
"message": "success",
"data": true
}
修改服务
接口描述
更新指定服务
服务不存在时会报错
请求方式
POST
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/service
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
metadata | JSON格式String | 否 | 服务元数据,默认为空 |
protectThreshold | float | 否 | 保护阈值,默认为0 |
selector | JSON格式String | 否 | 访问策略,默认为空 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'serviceName=nacos.test.1' \
-d 'metadata={"k1":"v2"}' \
-X PUT 'http://127.0.0.1:8848/nacos/v2/ns/service'返回示例
{
"code": 0,
"message": "success",
"data": true
}
查询服务详情
接口描述
查询某个具体服务的详情信息
服务不存在时会报错
请求方式
GET
请求URL
/nacos/v2/ns/service
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | 服务信息 | |
data.namespace | String | 命名空间 |
data.groupName | String | 分组名 |
data.serviceName | String | 服务名 |
data.clusterMap | map | 集群信息 |
data.metadata | map | 服务元数据 |
data.protectThreshold | float | 保护阈值 |
data.selector | Object | 访问策略 |
data.ephemeral | Boolean | 是否为临时实例 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/service?serviceName=nacos.test.1'
返回示例
{
"code": 0,
"message": "success",
"data": {
"namespace": "public",
"serviceName": "nacos.test.1",
"groupName": "DEFAULT_GROUP",
"clusterMap": {},
"metadata": {},
"protectThreshold": 0,
"selector": {
"type": "none",
"contextType": "NONE"
},
"ephemeral": false
}
}
查询服务列表
接口描述
查询符合条件的服务列表
请求方式
GET
请求URL
/nacos/v2/ns/service/list
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
selector | JSON格式String | 是 | 访问策略 |
pageNo | int | 否 | 当前页,默认为1 |
pageSize | int | 否 | 页条目数,默认为20 ,最大为500 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | 服务列表信息 | |
data.count | String | 服务数目 |
data.services | String[] | 分页后的服务列表 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/service/list'
返回示例
{
"code": 0,
"message": "success",
"data": {
"count": 2,
"services": [
"nacos.test.1",
"nacos.test.2"
]
}
}
查询系统开关
接口描述
查询系统开关
请求方式
GET
请求URL
/nacos/v2/ns/operator/switches
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 系统开关信息 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/operator/switches'
返回示例
{
"code": 0,
"message": "success",
"data": {
"masters": null,
"adWeightMap": {},
"defaultPushCacheMillis": 10000,
"clientBeatInterval": 5000,
"defaultCacheMillis": 3000,
"distroThreshold": 0.7,
"healthCheckEnabled": true,
"autoChangeHealthCheckEnabled": true,
"distroEnabled": true,
"enableStandalone": true,
"pushEnabled": true,
"checkTimes": 3,
"httpHealthParams": {
"max": 5000,
"min": 500,
"factor": 0.85
},
"tcpHealthParams": {
"max": 5000,
"min": 1000,
"factor": 0.75
},
"mysqlHealthParams": {
"max": 3000,
"min": 2000,
"factor": 0.65
},
"incrementalList": [],
"serverStatusSynchronizationPeriodMillis": 2000,
"serviceStatusSynchronizationPeriodMillis": 5000,
"disableAddIP": false,
"sendBeatOnly": false,
"lightBeatEnabled": true,
"doubleWriteEnabled": false,
"limitedUrlMap": {},
"distroServerExpiredMillis": 10000,
"pushGoVersion": "0.1.0",
"pushJavaVersion": "0.1.0",
"pushPythonVersion": "0.4.3",
"pushCVersion": "1.0.12",
"pushCSharpVersion": "0.9.0",
"enableAuthentication": false,
"overriddenServerStatus": null,
"defaultInstanceEphemeral": true,
"healthCheckWhiteList": [],
"name": "00-00---000-NACOS_SWITCH_DOMAIN-000---00-00",
"checksum": null
}
}
修改系统开关
接口描述
修改系统开关
请求方式
PUT
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/operator/switches
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
entry | String | 是 | 开关名 |
value | String | 是 | 开关值 |
debug | boolean | 否 | 是否只在本机生效,true 表示本机生效,false 表示集群生效 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | String | “ok ”表示执行成功 |
示例
请求示例
curl -d 'entry=pushEnabled' \
-d 'value=false' \
-d 'debug=true' \
-X PUT 'http://127.0.0.1:8848/nacos/v2/ns/operator/switches'返回示例
{
"code": 0,
"message": "success",
"data": "ok"
}
查询系统当前数据指标
接口描述
查询系统当前数据指标
请求方式
GET
请求URL
/nacos/v2/ns/operator/metrics
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
onlyStatus | boolean | 否 | 只显示状态,默认为true |
当
onlyStatus
设置为true
时,只返回表示系统状态的字符串
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 系统当前数据指标 |
data.status | String | 系统状态 |
data.serviceCount | int | 服务数量 |
data.instanceCount | int | 实例数量 |
data.subscribeCount | int | 订阅数量 |
data.raftNotifyTaskCount | int | Raft 通知任务数量 |
data.responsibleServiceCount | int | |
data.responsibleInstanceCount | int | |
data.clientCount | int | 客户端数量 |
data.connectionBasedClientCount | int | 连接数量 |
data.ephemeralIpPortClientCount | int | 临时客户端数量 |
data.persistentIpPortClientCount | int | 持久客户端数量 |
data.responsibleClientCount | int | |
data.cpu | float | cpu 使用率 |
data.load | float | 负载 |
data.mem | float | 内存使用率 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/operator/metrics'
返回示例
{
"code": 0,
"message": "success",
"data": {
"status": "UP",
"serviceCount": 2,
"instanceCount": 2,
"subscribeCount": 2,
"raftNotifyTaskCount": 0,
"responsibleServiceCount": 0,
"responsibleInstanceCount": 0,
"clientCount": 2,
"connectionBasedClientCount": 2,
"ephemeralIpPortClientCount": 0,
"persistentIpPortClientCount": 0,
"responsibleClientCount": 2,
"cpu": 0,
"load": -1,
"mem": 1
}
}
更新实例健康状态
接口描述
更新实例的健康状态
请求方式
PUT
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/ns/health/instance
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
clusterName | String | 否 | 集群名,默认为DEFAULT |
ip | String | 是 | IP 地址 |
port | int | 是 | 端口号 |
healthy | boolean | 是 | 是否健康 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | String | “ok ”表示执行成功 |
示例
请求示例
curl -d 'serviceName=nacos.test.1' \
-d 'ip=127.0.0.1' \
-d 'port=8080' \
-d 'healthy=false' \
-X PUT 'http://127.0.0.1:8848/nacos/v2/ns/health/instance'返回示例
{
"code": 0,
"message": "success",
"data": "ok"
}
查询客户端列表(新)
接口描述
查询当前所有的客户端列表
请求方式
GET
请求URL
/nacos/v2/ns/client/list
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | String[] | 客户端id 列表 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/client/list'
返回示例
{
"code": 0,
"message": "success",
"data": [
"10.128.164.35:9956#true",
"1664358687402_127.0.0.1_2300",
"1664358642902_127.0.0.1_2229",
"192.168.139.1:49825#true",
"10.128.164.35:9954#true",
"192.168.139.1:53556#true"
]
}
对于不同版本的nacos client,建立客户端的方式不同。
对于
1.x
版本,每个实例会建立两个基于ip+port
的客户端,分别对应实例注册与服务订阅,clientId
格式为ip:port#ephemeral
对于
2.x
版本的nacos client
, 每个实例会建立一个RPC
连接,对应一个基于RPC
连接的客户端,兼具注册与订阅功能,clientId
格式为time_ip_port
查询客户端信息(新)
接口描述
查询指定客户端的详细信息
客户端不存在时会报错
请求方式
GET
请求URL
/nacos/v2/ns/client
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
clientId | String | 是 | 客户端id |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 客户端信息 |
data.clientId | String | 客户端id |
data.ephemeral | boolean | 是否为临时实例 |
data.lastUpdatedTime | int | 上次更新时间 |
data.clientType | String | 客户端类型 |
data.clientIp | String | 客户端IP |
data.clientPort | String | 客户端端口 |
data.connectType | String | 连接类型 |
data.appName | String | 应用名 |
data.Version | String | 客户端版本 |
只有当
clientType
为connection
时,会显示connectType
,appName
和appName
字段
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/client?clientId=1664527081276_127.0.0.1_4400'
返回示例
{
"code": 0,
"message": "success",
"data": {
"clientId": "1664527081276_127.0.0.1_4400",
"ephemeral": true,
"lastUpdatedTime": 1664527081642,
"clientType": "connection",
"connectType": "GRPC",
"appName": "-",
"version": "Nacos-Java-Client:v2.1.0",
"clientIp": "10.128.164.35",
"clientPort": "4400"
}
}
查询客户端的注册信息(新)
接口描述
查询指定客户端的注册信息
客户端不存在时会报错
请求方式
GET
请求URL
/nacos/v2/ns/client/publish/list
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
clientId | String | 是 | 客户端id |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object[] | 客户端注册的服务列表 |
data.namespace | String | 命名空间 |
data.group | String | 分组名 |
data.serviceName | String | 服务名 |
data.registeredInstance | Object | 该服务下注册的实例 |
data.registeredInstance.ip | String | IP 地址 |
data.registeredInstance.port | int | 端口号 |
data.registeredInstance.cluster | String | 集群名 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/client/publish/list?clientId=1664527081276_127.0.0.1_4400'
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"namespace": "public",
"group": "DEFAULT_GROUP",
"serviceName": "nacos.test.1",
"registeredInstance": {
"ip": "10.128.164.35",
"port": 9950,
"cluster": "DEFAULT"
}
}
]
}
查询客户端的订阅信息(新)
接口描述
查询指定客户端的订阅信息
客户端不存在时会报错
请求方式
GET
请求URL
/nacos/v2/ns/client/subscribe/list
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
clientId | String | 是 | 客户端id |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object[] | 客户端订阅的服务列表 |
data.namespace | String | 命名空间 |
data.group | String | 分组名 |
data.serviceName | String | 服务名 |
data.subscriberInfo | Object | 订阅信息 |
data.subscriberInfo.app | String | 应用 |
data.subscriberInfo.agent | String | 客户端信息 |
data.subscriberInfo.addr | String | 地址 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/client/subscribe/list?clientId=1664527081276_127.0.0.1_4400'
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"namespace": "public",
"group": "DEFAULT_GROUP",
"serviceName": "nacos.test.1",
"subscriberInfo": {
"app": "unknown",
"agent": "Nacos-Java-Client:v2.1.0",
"addr": "10.128.164.35"
}
}
]
}
查询注册指定服务的客户端信息(新)
接口描述
查询注册指定服务的客户端信息
请求方式
GET
请求URL
/nacos/v2/ns/client/service/publisher/list
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
ephemeral | boolean | 否 | 是否为临时实例 |
ip | String | 否 | IP 地址,默认为空,不限制IP 地址 |
port | int | 否 | 端口号,默认为空,表示不限制端口号 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | 客户端列表 | |
data.clientId | String | 客户端id |
data.ip | String | 客户端IP |
data.port | int | 客户端端口 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/client/service/publisher/list?serviceName=nacos.test.1&ip=&port='
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"clientId": "1664527081276_127.0.0.1_4400",
"ip": "10.128.164.35",
"port": 9950
},
{
"clientId": "10.128.164.35:9954#true",
"ip": "10.128.164.35",
"port": 9954
}
]
}
查询订阅指定服务的客户端信息(新)
接口描述
查询订阅指定服务的客户端信息
请求方式
GET
请求URL
/nacos/v2/ns/client/service/subscriber/list
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 否 | 命名空间Id ,默认为public |
groupName | String | 否 | 分组名,默认为DEFAULT_GROUP |
serviceName | String | 是 | 服务名 |
ephemeral | boolean | 否 | 是否为临时实例 |
ip | String | 否 | IP 地址,默认为空,不限制IP 地址 |
port | int | 否 | 端口号,默认为空,表示不限制端口号 |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | 客户端列表 | |
data.clientId | String | 客户端id |
data.ip | String | 客户端IP |
data.port | int | 客户端端口 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/ns/client/service/subscriber/list?serviceName=nacos.test.1&ip=&port='
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"clientId": "1664527125645_127.0.0.1_4443",
"ip": "10.128.164.35",
"port": 0
},
{
"clientId": "172.24.144.1:54126#true",
"ip": "172.24.144.1",
"port": 54126
}
]
}
命名空间
查询命名空间列表
接口描述
查询当前所有的命名空间
请求方式
GET
请求URL
/nacos/v2/console/namespace/list
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object[] | 命名空间列表 |
data.namespace | String | 命名空间ID |
data.namespaceShowName | String | 命名空间名称 |
data.namespaceDesc | String | 命名空间描述 |
data.quota | int | 命名空间的容量 |
data.configCount | int | 命名空间下的配置数量 |
data.type | int | 命名空间类型 |
命名空间分为3种类型,
0
- 全局命名空间1
- 默认私有命名空间2
- 自定义命名空间
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/console/namespace/list'
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"namespace": "",
"namespaceShowName": "public",
"namespaceDesc": null,
"quota": 200,
"configCount": 1,
"type": 0
}
]
}
查询具体命名空间
接口描述
查询具体命名空间的信息
命名空间不存在时会报错
请求方式
GET
请求URL
/nacos/v2/console/namespace
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 是 | 命名空间Id |
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 命名空间信息 |
data.namespace | String | 命名空间ID |
data.namespaceShowName | String | 命名空间名称 |
data.namespaceDesc | String | 命名空间描述 |
data.quota | int | 命名空间的容量 |
data.configCount | int | 命名空间下的配置数量 |
data.type | int | 命名空间类型 |
命名空间分为3种类型,
0
- 全局命名空间1
- 默认私有命名空间2
- 自定义命名空间
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/console/namespace?namespaceId=test_namespace'
返回示例
{
"code": 0,
"message": "success",
"data": {
"namespace": "test_namespace",
"namespaceShowName": "test",
"namespaceDesc": null,
"quota": 200,
"configCount": 0,
"type": 2
}
}
创建命名空间
接口描述
创建一个命名空间
命名空间已存在时会报错
请求方式
POST
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/console/namespace
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 是 | 命名空间Id |
namespaceName | String | 是 | 命名空间名称 |
namespaceDesc | String | 否 | 命名空间描述 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'namespaceId=test_namespace' \
-d 'namespaceName=test' \
-X POST 'http://127.0.0.1:8848/nacos/v2/console/namespace'返回示例
{
"code": 0,
"message": "success",
"data": true
}
编辑命名空间
接口描述
编辑命名空间信息
请求方式
PUT
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/console/namespace
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 是 | 命名空间Id |
namespaceName | String | 是 | 命名空间名称 |
namespaceDesc | String | 否 | 命名空间描述 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'namespaceId=test_namespace' \
-d 'namespaceName=test.nacos' \
-X PUT 'http://127.0.0.1:8848/nacos/v2/console/namespace'返回示例
{
"code": 0,
"message": "success",
"data": true
}
删除命名空间
接口描述
删除指定命名空间
请求方式
DELETE
请求URL
/nacos/v2/console/namespace
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
namespaceId | String | 是 | 命名空间Id |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'namespaceId=test_namespace' \
-X DELETE 'http://127.0.0.1:8848/nacos/v2/console/namespace'返回示例
{
"code": 0,
"message": "success",
"data": true
}
集群管理
查询当前节点信息
接口描述
查询当前nacos
节点信息
请求方式
GET
请求URL
/nacos/v2/core/cluster/node/self
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object | 当前节点信息 |
data.ip | String | 节点IP 地址 |
data.port | int | 节点端口 |
data.state | String | 节点状态 |
data.extendInfo | Object | 节点扩展信息 |
data.address | String | 节点地址(IP:port ) |
data.failAccessCnt | int | 失败访问次数 |
data.abilities | Object |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/core/cluster/node/self'
返回示例
{
"code": 0,
"message": "success",
"data": {
"ip": "10.128.164.35",
"port": 8848,
"state": "UP",
"extendInfo": {
"lastRefreshTime": 1664521263623,
"raftMetaData": {
"metaDataMap": {
"naming_instance_metadata": {
"leader": "10.128.164.35:7848",
"raftGroupMember": [
"10.128.164.35:7848"
],
"term": 12
},
"naming_persistent_service_v2": {
"leader": "10.128.164.35:7848",
"raftGroupMember": [
"10.128.164.35:7848"
],
"term": 12
},
"naming_service_metadata": {
"leader": "10.128.164.35:7848",
"raftGroupMember": [
"10.128.164.35:7848"
],
"term": 12
}
}
},
"raftPort": "7848",
"readyToUpgrade": true,
"version": "2.1.0"
},
"address": "10.128.164.35:8848",
"failAccessCnt": 0,
"abilities": {
"remoteAbility": {
"supportRemoteConnection": true
},
"configAbility": {
"supportRemoteMetrics": false
},
"namingAbility": {
"supportJraft": true
}
}
}
}
查询集群节点列表
接口描述
查询集群节点列表
请求方式
GET
请求URL
/nacos/v2/core/cluster/node/list
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
address | String | 否 | 节点地址,默认为空 |
state | String | 否 | 节点状态,默认为空 |
address
对应于需要查询的节点地址的前缀匹配条件,为空时不做限制
state
对应节点状态的筛选条件,为空时不做限制
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | Object[] | 节点列表,详情参见节点详情 |
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/core/cluster/node/list'
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"ip": "10.128.164.35",
"port": 8848,
"state": "UP",
"extendInfo": {
"lastRefreshTime": 1664521263623,
"raftMetaData": {
"metaDataMap": {
"naming_instance_metadata": {
"leader": "10.128.164.35:7848",
"raftGroupMember": [
"10.128.164.35:7848"
],
"term": 12
},
"naming_persistent_service_v2": {
"leader": "10.128.164.35:7848",
"raftGroupMember": [
"10.128.164.35:7848"
],
"term": 12
},
"naming_service_metadata": {
"leader": "10.128.164.35:7848",
"raftGroupMember": [
"10.128.164.35:7848"
],
"term": 12
}
}
},
"raftPort": "7848",
"readyToUpgrade": true,
"version": "2.1.0"
},
"address": "10.128.164.35:8848",
"failAccessCnt": 0,
"abilities": {
"remoteAbility": {
"supportRemoteConnection": true
},
"configAbility": {
"supportRemoteMetrics": false
},
"namingAbility": {
"supportJraft": true
}
}
}
]
}
查询当前节点健康状态
接口描述
查询当前nacos
节点健康状态
请求方式
GET
请求URL
/nacos/v2/core/cluster/node/self/health
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
data | String | 当前节点健康状态 |
节点共有
STARTING
,UP
,SUSPICIOUS
,DOWN
,ISOLATION
五种状态
示例
请求示例
curl -X GET 'http://127.0.0.1:8848/nacos/v2/core/cluster/node/self/health'
返回示例
{
"code": 0,
"message": "success",
"data": "UP"
}
切换集群寻址模式
接口描述
切换集群寻址模式
请求方式
PUT
Content-Type:application/x-www-form-urlencoded
请求URL
/nacos/v2/core/cluster/lookup
请求Body
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
type | String | 是 | 寻址模式 |
寻址模式有两种:
file
(文件配置)和address-server
(地址服务器)
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | boolean | 是否执行成功 |
示例
请求示例
curl -d 'type=file' \
-X PUT 'http://127.0.0.1:8848/nacos/v2/core/cluster/lookup'返回示例
{
"code": 0,
"message": "success",
"data": true
}
连接负载管理
查询当前节点客户端连接列表
接口描述
查询当前Nacos
节点上的客户端连接列表
请求方式
GET
请求URL
/nacos/v2/core/loader/current
返回数据
参数名 | 参数类型 | 描述说明 |
---|---|---|
traced | Boolean | 是否监控 |
abilityTable | Map | 能力表 |
metaInfo | Object | 元信息 |
connected | Integer | 是否连接 |
labels | Map | 标签 |
示例
请求示例
curl -X GET 'http://localhost:8848/nacos/v2/core/loader/current'
返回示例
{
"1697424543845_127.0.0.1_11547": {
"traced": false,
"abilityTable": null,
"metaInfo": {
"connectType": "GRPC",
"clientIp": "192.168.49.1",
"localPort": 9848,
"version": "Nacos-Java-Client:v2.1.0",
"connectionId": "1697424543845_127.0.0.1_11547",
"createTime": "2023-10-16T10:49:03.907+08:00",
"lastActiveTime": 1697424869827,
"appName": "unknown",
"tenant": "",
"labels": {
"source": "sdk",
"taskId": "0",
"module": "config",
"AppName": "unknown"
},
"tag": null,
"sdkSource": true,
"clusterSource": false
},
"connected": true,
"labels": {
"source": "sdk",
"taskId": "0",
"module": "config",
"AppName": "unknown"
}
}
}
重新加载当前节点客户端连接数量
接口描述
重新加载当前Nacos
节点的客户端连接数量
请求方式
GET
请求URL
/nacos/v2/core/loader/current/reloadCurrent
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
count | Integer | 是 | 连接数量 |
redirectAddress | String | 否 | 重定向地址 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | String | 是否执行成功 |
示例
请求示例
curl -X GET 'http://localhost:8848/nacos/v2/core/loader/reloadCurrent?count=1&redirectAddress=127.0.0.1:8848'
返回示例
```text
success
```智能平衡集群节点的连接数
接口描述
智能平衡Nacos
集群中所有节点的客户端连接数
请求方式
GET
请求URL
/nacos/v2/core/loader/current/smartReloadCluster
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
loaderFactor | Float | 否 | 加载因子,默认加载因子0.1,每个节点的SDK数量(1-loaderFactor) avg~(1+loaderFactor) avg |
force | String | 否 | 是否强制 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | String | 是否执行成功 |
示例
请求示例
curl -X GET 'http://localhost:8848/nacos/v2/core/loader/smartReloadCluster?loaderFactor=1'
返回示例
```text
Ok
```重置指定客户端的连接
接口描述
根据 SDK
连接 ID
发送连接重置请求
请求方式
GET
请求URL
/nacos/v2/core/loader/current/reloadClient
请求参数
参数名 | 参数类型 | 是否必填 | 描述说明 |
---|---|---|---|
connectionId | String | 是 | 连接ID |
redirectAddress | String | 否 | 重置地址 |
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
data | String | 是否执行成功 |
示例
请求示例
curl -X GET 'http://localhost:8848/nacos/v2/core/loader/reloadClient?connectionId=1&redirectAddress=127.0.0.1:8848'
返回示例
```text
success
```获取集群的`SDK`指标
接口描述
获取Nacos
集群中所有的SDK指标
请求方式
GET
请求URL
/nacos/v2/core/loader/current/cluster
返回数据
参数名 | 参数类型 | 描述 |
---|---|---|
total | Integer | 当前集群节点数 |
min | Integer | 最小负载值 |
avg | Integer | 平均负载值 |
max | Integer | 最大负载值 |
memberCount | Integer | 当前节点的成员数 |
metricsCount | Integer | 负载信息数量 |
threshold | Float | 负载阈值。阈值的计算公式为:平均负载值 * 1.1 |
detail | List | 包含每个节点的详细负载信息 |
detail.address | String | 节点地址 |
detail.metric | Map<String,String> | 指标信息 |
completed | Boolean | 表示是否已完成负载信息的收集,如果为 true ,则表示所有节点的负载信息均已收集,否则为 false |
示例
请求示例
curl -X GET 'http://localhost:8848/nacos/v2/core/loader/cluster'
返回示例
{
"total": 1,
"min": 1,
"avg": 1,
"max": 1,
"memberCount": 1,
"metricsCount": 1,
"threshold": 1.1,
"detail": [
{
"address": "192.168.49.1:8848",
"metric": {
"load": "-1.0",
"sdkConCount": "1",
"cpu": "0.1487509",
"conCount": "1"
}
}
],
"completed": true
}