Open API 指南
-
配置管理
-
服務(wù)發(fā)現(xiàn)
配置管理
獲取配置
描述
獲取Nacos上的配置撩幽。
請(qǐng)求類型
GET
請(qǐng)求URL
/nacos/v1/cs/configs
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必須 | 描述 |
---|---|---|---|
tenant | string | 否 | 租戶信息,對(duì)應(yīng) Nacos 的命名空間ID字段跺撼。 |
dataId | string | 是 | 配置 ID阐斜。 |
group | string | 是 | 配置分組滞时。 |
返回參數(shù)
參數(shù)類型 | 描述 |
---|---|
string | 配置值 |
錯(cuò)誤編碼
錯(cuò)誤代碼 | 描述 | 語(yǔ)義 |
---|---|---|
400 | Bad Request | 客戶端請(qǐng)求中的語(yǔ)法錯(cuò)誤 |
403 | Forbidden | 沒有權(quán)限 |
404 | Not Found | 無(wú)法找到資源 |
500 | Internal Server Error | 服務(wù)器內(nèi)部錯(cuò)誤 |
200 | OK | 正常 |
示例
-
請(qǐng)求示例
http:serverIp:8848/nacos/v1/cs/configs?dataId=dataIdparam&group=groupParam&tenant=tenantParam
-
返回示例
contentTest
監(jiān)聽配置
描述
監(jiān)聽 Nacos 上的配置贼陶,以便實(shí)時(shí)感知配置變更。如果配置變更吃粒,則用獲取配置接口獲取配置的最新值,動(dòng)態(tài)刷新本地緩存拒课。
注冊(cè)監(jiān)聽采用的是異步 Servlet 技術(shù)徐勃。注冊(cè)監(jiān)聽本質(zhì)就是帶著配置和配置值的 MD5 值和后臺(tái)對(duì)比。如果 MD5 值不一致早像,就立即返回不一致的配置僻肖。如果值一致,就等待住 30 秒卢鹦。返回值為空臀脏。
請(qǐng)求類型
POST
請(qǐng)求URL
/nacos/v1/cs/configs/listener
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必須 | 描述 |
---|---|---|---|
Listening-Configs | string | 是 | 監(jiān)聽數(shù)據(jù)報(bào)文。格式為 dataId2Group2contentMD52tenant1或者dataId2Group2contentMD5^1。 * dataId:配置 IDgroup:配置分組 contentMD5:配置內(nèi)容 MD5 值 tenant:租戶信息揉稚,對(duì)應(yīng) Nacos 的命名空間字段(非必填) |
Header 參數(shù)
名稱 | 類型 | 是否必須 | 描述 |
---|---|---|---|
Long-Pulling-Timeout | string | 是 | 長(zhǎng)輪訓(xùn)等待 30s秒啦,此處填寫 30000。 |
參數(shù)說(shuō)明
- 配置多個(gè)字段間分隔符:^2 = Character.toString((char) 2
- 配置間分隔符:^1 = Character.toString((char) 1)
- contentMD5: MD5(content)搀玖,第一次本地緩存為空余境,所以這塊為空串
返回參數(shù)
參數(shù)類型 | 描述 |
---|---|
string | 配置值 |
錯(cuò)誤編碼
錯(cuò)誤代碼 | 描述 | 語(yǔ)義 |
---|---|---|
400 | Bad Request | 客戶端請(qǐng)求中的語(yǔ)法錯(cuò)誤 |
403 | Forbidden | 沒有權(quán)限 |
404 | Not Found | 無(wú)法找到資源 |
500 | Internal Server Error | 服務(wù)器內(nèi)部錯(cuò)誤 |
200 | OK | 正常 |
示例
- 請(qǐng)求示例
http://serverIp:8848/nacos/v1/cs/configs/listener
POST 請(qǐng)求體數(shù)據(jù)內(nèi)容:
Listening-Configs=dataId^2group^2contentMD5^2tenant^1
- 返回示例
如果配置變化
dataId^2group^2tenant^1
如果配置無(wú)變化:會(huì)返回空串
發(fā)布配置
描述
發(fā)布 Nacos 上的配置。
請(qǐng)求類型
POST
請(qǐng)求 URL
/nacos/v1/cs/configs
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必須 | 描述 |
---|---|---|---|
tenant | string | 否 | 租戶信息灌诅,對(duì)應(yīng) Nacos 的命名空間ID字段 |
dataId | string | 是 | 配置 ID |
group | string | 是 | 配置分組 |
content | string | 是 | 配置內(nèi)容 |
type | String | 否 | 配置類型 |
返回參數(shù)
參數(shù)類型 | 描述 |
---|---|
boolean | 是否發(fā)布成功 |
錯(cuò)誤編碼
錯(cuò)誤代碼 | 描述 | 語(yǔ)義 |
---|---|---|
400 | Bad Request | 客戶端請(qǐng)求中的語(yǔ)法錯(cuò)誤 |
403 | Forbidden | 沒有權(quán)限 |
404 | Not Found | 無(wú)法找到資源 |
500 | Internal Server Error | 服務(wù)器內(nèi)部錯(cuò)誤 |
200 | OK | 正常 |
示例
- 請(qǐng)求示例
http:serverIp:8848/nacos/v1/cs/configs
http body:
dataId=dataIdparam&group=groupParam&tenant=tenantParam&content=contentParam&type=typeParam
- 返回示例
true
刪除配置
描述
刪除 Nacos 上的配置芳来。
請(qǐng)求類型
DELETE
請(qǐng)求 URL
/nacos/v1/cs/configs
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必須 | 描述 |
---|---|---|---|
tenant | string | 否 | 租戶信息,對(duì)應(yīng) Naocs 的命名空間ID字段 |
dataId | string | 是 | 配置 ID |
group | string | 是 | 配置分組 |
返回參數(shù)
參數(shù)類型 | 描述 |
---|---|
boolean | 是否刪除成功 |
錯(cuò)誤編碼
錯(cuò)誤代碼 | 描述 | 語(yǔ)義 |
---|---|---|
400 | Bad Request | 客戶端請(qǐng)求中的語(yǔ)法錯(cuò)誤 |
403 | Forbidden | 沒有權(quán)限 |
404 | Not Found | 無(wú)法找到資源 |
500 | Internal Server Error | 服務(wù)器內(nèi)部錯(cuò)誤 |
200 | OK | 正常 |
示例
- 請(qǐng)求示例
http:serverIp:8848/nacos/v1/cs/configs?dataId=dataIdparam&group=groupParam
- 返回示例
true
服務(wù)發(fā)現(xiàn)
注冊(cè)實(shí)例
描述
注冊(cè)一個(gè)實(shí)例到服務(wù)猜拾。
請(qǐng)求類型
POST
請(qǐng)求路徑
/nacos/v1/ns/instance
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
ip | 字符串 | 是 | 服務(wù)實(shí)例IP |
port | int | 是 | 服務(wù)實(shí)例port |
namespaceId | 字符串 | 否 | 命名空間ID |
weight | double | 否 | 權(quán)重 |
enabled | boolean | 否 | 是否上線 |
healthy | boolean | 否 | 是否健康 |
metadata | 字符串 | 否 | 擴(kuò)展信息 |
clusterName | 字符串 | 否 | 集群名 |
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
ephemeral | boolean | 否 | 是否臨時(shí)實(shí)例 |
示例請(qǐng)求
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?port=8848&healthy=true&ip=11.11.11.11&weight=1.0&serviceName=nacos.test.3&encoding=GBK&namespaceId=n1''
示例返回
ok
注銷實(shí)例
描述
刪除服務(wù)下的一個(gè)實(shí)例即舌。
請(qǐng)求類型
DELETE
請(qǐng)求路徑
/nacos/v1/ns/instance
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
ip | 字符串 | 是 | 服務(wù)實(shí)例IP |
port | int | 是 | 服務(wù)實(shí)例port |
clusterName | 字符串 | 否 | 集群名稱 |
namespaceId | 字符串 | 否 | 命名空間ID |
ephemeral | boolean | 否 | 是否臨時(shí)實(shí)例 |
示例請(qǐng)求
curl -X DELETE 127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.test.1&ip=1.1.1.1&port=8888&clusterName=TEST1
示例返回
ok
修改實(shí)例
描述
修改服務(wù)下的一個(gè)實(shí)例。
請(qǐng)求類型
PUT
請(qǐng)求路徑
/nacos/v1/ns/instance
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
ip | 字符串 | 是 | 服務(wù)實(shí)例IP |
port | int | 是 | 服務(wù)實(shí)例port |
clusterName | 字符串 | 否 | 集群名稱 |
namespaceId | 字符串 | 否 | 命名空間ID |
weight | double | 否 | 權(quán)重 |
metadata | JSON | 否 | 擴(kuò)展信息 |
enabled | boolean | 否 | 是否打開流量 |
ephemeral | boolean | 否 | 是否臨時(shí)實(shí)例 |
示例請(qǐng)求
curl -X PUT 127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.test.1&ip=1.1.1.1&port=8888&clusterName=TEST1&weight=8&metadata={}
示例返回
ok
查詢實(shí)例列表
描述
查詢服務(wù)下的實(shí)例列表
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/instance/list
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
namespaceId | 字符串 | 否 | 命名空間ID |
clusters | 字符串挎袜,多個(gè)集群用逗號(hào)分隔 | 否 | 集群名稱 |
healthyOnly | boolean | 否侥涵,默認(rèn)為false | 是否只返回健康實(shí)例 |
示例請(qǐng)求
curl -X GET 127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.test.1
示例返回
{
"dom": "nacos.test.1",
"cacheMillis": 1000,
"useSpecifiedURL": false,
"hosts": [{
"valid": true,
"marked": false,
"instanceId": "10.10.10.10-8888-DEFAULT-nacos.test.1",
"port": 8888,
"ip": "10.10.10.10",
"weight": 1.0,
"metadata": {}
}],
"checksum": "3bbcf6dd1175203a8afdade0e77a27cd1528787794594",
"lastRefTime": 1528787794594,
"env": "",
"clusters": ""
}
查詢實(shí)例詳情
描述
查詢一個(gè)服務(wù)下個(gè)某個(gè)實(shí)例詳情。
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/instance
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
ip | 字符串 | 是 | 實(shí)例IP |
port | 字符串 | 是 | 實(shí)例端口 |
namespaceId | 字符串 | 否 | 命名空間ID |
cluster | 字符串 | 否 | 集群名稱 |
healthyOnly | boolean | 否宋雏,默認(rèn)為false | 是否只返回健康實(shí)例 |
ephemeral | boolean | 否 | 是否臨時(shí)實(shí)例 |
示例請(qǐng)求
curl -X GET '127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.test.2&ip=10.10.10.10&port=8888&cluster=DEFAULT'
示例返回
{
"metadata": {},
"instanceId": "10.10.10.10-8888-DEFAULT-nacos.test.2",
"port": 8888,
"service": "nacos.test.2",
"healthy": false,
"ip": "10.10.10.10",
"clusterName": "DEFAULT",
"weight": 1.0
}
發(fā)送實(shí)例心跳
描述
發(fā)送某個(gè)實(shí)例的心跳
請(qǐng)求類型
PUT
請(qǐng)求路徑
/nacos/v1/ns/instance/beat
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
ephemeral | boolean | 否 | 是否臨時(shí)實(shí)例 |
beat | JSON格式字符串 | 是 | 實(shí)例心跳內(nèi)容 |
示例請(qǐng)求
curl -X PUT '127.0.0.1:8848/nacos/v1/ns/instance/beat?serviceName=nacos.test.2&beat=%7b%22cluster%22%3a%22c1%22%2c%22ip%22%3a%22127.0.0.1%22%2c%22metadata%22%3a%7b%7d%2c%22port%22%3a8080%2c%22scheduled%22%3atrue%2c%22serviceName%22%3a%22jinhan0Fx4s.173TL.net%22%2c%22weight%22%3a1%7d'
示例返回
ok
創(chuàng)建服務(wù)
描述
創(chuàng)建一個(gè)服務(wù)
請(qǐng)求類型
POST
請(qǐng)求路徑
/nacos/v1/ns/service
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
namespaceId | 字符串 | 否 | 命名空間ID |
protectThreshold | 浮點(diǎn)數(shù) | 否 | 保護(hù)閾值,取值0到1,默認(rèn)0 |
metadata | 字符串 | 否 | 元數(shù)據(jù) |
selector | JSON格式字符串 | 否 | 訪問(wèn)策略 |
示例請(qǐng)求
curl -X POST '127.0.0.1:8848/nacos/v1/ns/service?serviceName=nacos.test.2&metadata=k1%3dv1'
示例返回
ok
刪除服務(wù)
描述
刪除一個(gè)服務(wù),只有當(dāng)服務(wù)下實(shí)例數(shù)為0時(shí)允許刪除
請(qǐng)求類型
DELETE
請(qǐng)求路徑
/nacos/v1/ns/service
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
namespaceId | 字符串 | 否 | 命名空間ID |
示例請(qǐng)求
curl -X DELETE '127.0.0.1:8848/nacos/v1/ns/service?serviceName=nacos.test.2'
示例返回
ok
修改服務(wù)
描述
更新一個(gè)服務(wù)
請(qǐng)求類型
PUT
請(qǐng)求路徑
/nacos/v1/ns/service
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
namespaceId | 字符串 | 否 | 命名空間ID |
protectThreshold | 浮點(diǎn)數(shù) | 否 | 保護(hù)閾值,取值0到1,默認(rèn)0 |
metadata | 字符串 | 否 | 元數(shù)據(jù) |
selector | JSON格式字符串 | 否 | 訪問(wèn)策略 |
示例請(qǐng)求
curl -X PUT '127.0.0.1:8848/nacos/v1/ns/service?serviceName=nacos.test.2&metadata=k1%3dv1'
示例返回
ok
查詢服務(wù)
描述
查詢一個(gè)服務(wù)
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/service
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
namespaceId | 字符串 | 否 | 命名空間ID |
示例請(qǐng)求
curl -X GET '127.0.0.1:8848/nacos/v1/ns/service?serviceName=nacos.test.2'
示例返回
{
metadata: { },
groupName: "DEFAULT_GROUP",
namespaceId: "public",
name: "nacos.test.2",
selector: {
type: "none"
},
protectThreshold: 0,
clusters: [
{
healthChecker: {
type: "TCP"
},
metadata: { },
name: "c1"
}
]
}
查詢服務(wù)列表
描述
查詢服務(wù)列表
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/service/list
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
pageNo | int | 是 | 當(dāng)前頁(yè)碼 |
pageSize | int | 是 | 分頁(yè)大小 |
groupName | 字符串 | 否 | 分組名 |
namespaceId | 字符串 | 否 | 命名空間ID |
示例請(qǐng)求
curl -X GET '127.0.0.1:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=2'
示例返回
{
"count":148,
"doms": [
"nacos.test.1",
"nacos.test.2"
]
}
查詢系統(tǒng)開關(guān)
描述
查詢系統(tǒng)開關(guān)
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/operator/switches
請(qǐng)求參數(shù)
示例請(qǐng)求
curl -X GET '127.0.0.1:8848/nacos/v1/ns/operator/switches'
示例返回
{
name: "00-00---000-NACOS_SWITCH_DOMAIN-000---00-00",
masters: null,
adWeightMap: { },
defaultPushCacheMillis: 10000,
clientBeatInterval: 5000,
defaultCacheMillis: 3000,
distroThreshold: 0.7,
healthCheckEnabled: 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: 15000,
serviceStatusSynchronizationPeriodMillis: 5000,
disableAddIP: false,
sendBeatOnly: false,
limitedUrlMap: { },
distroServerExpiredMillis: 30000,
pushGoVersion: "0.1.0",
pushJavaVersion: "0.1.0",
pushPythonVersion: "0.4.3",
pushCVersion: "1.0.12",
enableAuthentication: false,
overriddenServerStatus: "UP",
defaultInstanceEphemeral: true,
healthCheckWhiteList: [ ],
checksum: null
}
修改系統(tǒng)開關(guān)
描述
修改系統(tǒng)開關(guān)
請(qǐng)求類型
PUT
請(qǐng)求路徑
/nacos/v1/ns/operator/switches
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
entry | 字符串 | 是 | 開關(guān)名 |
value | 字符串 | 是 | 開關(guān)值 |
debug | boolean | 否 | 是否只在本機(jī)生效,true表示本機(jī)生效,false表示集群生效 |
示例請(qǐng)求
curl -X PUT '127.0.0.1:8848/nacos/v1/ns/operator/switches?entry=pushEnabled&value=false&debug=true'
示例返回
ok
查看系統(tǒng)當(dāng)前數(shù)據(jù)指標(biāo)
描述
查看系統(tǒng)當(dāng)前數(shù)據(jù)指標(biāo)
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/operator/metrics
請(qǐng)求參數(shù)
示例請(qǐng)求
curl -X GET '127.0.0.1:8848/nacos/v1/ns/operator/metrics'
示例返回
{
serviceCount: 336,
load: 0.09,
mem: 0.46210432,
responsibleServiceCount: 98,
instanceCount: 4,
cpu: 0.010242796,
status: "UP",
responsibleInstanceCount: 0
}
查看當(dāng)前集群Server列表
描述
查看當(dāng)前集群Server列表
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/operator/servers
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
healthy | boolean | 否 | 是否只返回健康Server節(jié)點(diǎn) |
示例請(qǐng)求
curl -X GET '127.0.0.1:8848/nacos/v1/ns/operator/servers'
示例返回
{
servers: [
{
ip: "1.1.1.1",
servePort: 8848,
site: "unknown",
weight: 1,
adWeight: 0,
alive: false,
lastRefTime: 0,
lastRefTimeStr: null,
key: "1.1.1.1:8848"
},
{
ip: "1.1.1.2",
servePort: 8848,
site: "unknown",
weight: 1,
adWeight: 0,
alive: false,
lastRefTime: 0,
lastRefTimeStr: null,
key: "1.1.1.2:8848"
},
{
ip: "1.1.1.3",
servePort: 8848,
site: "unknown",
weight: 1,
adWeight: 0,
alive: false,
lastRefTime: 0,
lastRefTimeStr: null,
key: "1.1.1.3:8848"
}
]
}
查看當(dāng)前集群leader
描述
查看當(dāng)前集群leader
請(qǐng)求類型
GET
請(qǐng)求路徑
/nacos/v1/ns/raft/leader
請(qǐng)求參數(shù)
示例請(qǐng)求
curl -X GET '127.0.0.1:8848/nacos/v1/ns/raft/leader'
示例返回
{
leader: "{"heartbeatDueMs":2500,"ip":"1.1.1.1:8848","leaderDueMs":12853,"state":"LEADER","term":54202,"voteFor":"1.1.1.1:8848"}"
}
更新實(shí)例的健康狀態(tài)
描述
更新實(shí)例的健康狀態(tài),僅在集群的健康檢查關(guān)閉時(shí)才生效,當(dāng)集群配置了健康檢查時(shí),該接口會(huì)返回錯(cuò)誤
請(qǐng)求類型
PUT
請(qǐng)求路徑
/nacos/v1/ns/health/instance
請(qǐng)求參數(shù)
名稱 | 類型 | 是否必選 | 描述 |
---|---|---|---|
namespaceId | 字符串 | 否 | 命名空間ID |
serviceName | 字符串 | 是 | 服務(wù)名 |
groupName | 字符串 | 否 | 分組名 |
clusterName | 字符串 | 否 | 集群名 |
ip | 字符串 | 是 | 服務(wù)實(shí)例IP |
port | int | 是 | 服務(wù)實(shí)例port |
healthy | boolean | 是 | 是否健康 |
示例請(qǐng)求
curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/health/instance?port=8848&healthy=true&ip=11.11.11.11&serviceName=nacos.test.3&namespaceId=n1''
示例返回
ok