- 字段定义
- 错误码定义
- 注册register
- 心跳renew
- 下线cancel
- 获取实例fetch
- 批量获取实例fetchs
- 长轮询获取实例poll
- 长轮询批量获取实例polls
- 获取node节点
- 修改实例信息set
字段 | 说明 |
---|---|
zone | 机房服务地区标识,用于多机房部署区分数据中心 |
env | 环境信息,(例如:fat1,uat ,pre ,prod)分别对应fat环境 集成环境,预发布和线上 |
appid | 服务唯一标识。【业务标识.服务标识[.子服务标识]】 全局唯一,禁止修改 |
hostname | instance主机标识 |
addrs | 服务地址 格式为 scheme://ip:port,支持多个协议地址。如 grpc://127.0.0.1:8888, http://127.0.0.1:8887 |
color | 服务标记,可用于集群区分,业务灰度流量选择集群 |
version | 服务版本号信息 |
metadata | 服务自定义扩展元数据,格式为{"key1":"value1"},可以用于传递权重,负载等信息 使用json格式传递。 { “weight":"10","key2":"value2"} |
错误码 | 说明 |
---|---|
0 | 成功 |
-304 | 实例信息无变化 |
-400 | 请求参数错误 |
-404 | 实例不存在 |
-409 | 实例信息不一致 |
-500 | 未知错误 |
HTTP
POST http://HOST/discovery/register
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
zone | true | string | 可用区 |
env | true | string | 环境 |
appid | true | string | 服务名标识 |
hostname | true | string | 主机名 |
addrs | true | []string | 服务地址列表 |
status | true | int | 状态,1表示接收流量,2表示不接收 |
color | false | string | 灰度或集群标识 |
metadata | false | json string | 业务自定义信息 必须为map[string]string 的json格式 |
返回结果
*****成功*****
{
"code":0,
"message":""
}
****失败****
{
"code":-400,
"message":"-400"
}
CURL
curl 'http://127.0.0.1:7171/discovery/register' -d "zone=sh1&env=test&appid=provider&hostname=myhostname&status=1&addrs=http%3A%2F%2F172.1.1.1%3A8000&addrs=grpc%3A%2F%2F172.1.1.1%3A9999&version=111&metadata=%7B%22weight%22%3A10%7D"
HTTP
POST http://HOST/discovery/renew
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
zone | true | string | 可用区 |
env | true | string | 环境 |
appid | true | string | 服务名标识 |
hostname | true | string | 主机名 |
返回结果
*****成功*****
{
"code":0,
"message":""
}
****失败****
{
"code":-400,
"message":"-400"
}
CURL
curl 'http://127.0.0.1:7171/discovery/renew' -d "zone=sh1&env=test&appid=provider&hostname=myhostname"
HTTP
POST http://HOST/discovery/cancel
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
zone | true | string | 可用区 |
env | true | string | 环境 |
appid | true | string | 服务名标识 |
hostname | true | string | 主机名 |
返回结果
*****成功*****
{
"code":0,
"message":""
}
****失败****
{
"code":-400,
"message":"-400"
}
CURL
curl 'http://127.0.0.1:7171/discovery/cancel' -d "zone=sh1&env=test&appid=provider&hostname=myhostname"
HTTP
GET http://HOST/discovery/fetch
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | true | string | 服务名标识 |
env | true | string | 环境 |
zone | false | string | 可用区,不传返回所有zone的 |
status | true | int | 拉取某状态服务1.接收流量 2.不接收 3.所有状态 |
返回结果
{
"code": 0,
"data": {
"instances": {
"zone001": [
{
"zone": "zone001",
"env": "uat",
"appid": "app_id_0",
"hostname": "hostname000000",
"color": "",
"version": "111",
"metadata": {
"provider": "",
"weight": "10"
},
"addrs": [
"http://172.1.1.1:8080",
"gorpc://172.1.1.1:8089"
],
"status": 1,
"reg_timestamp": 1525948301833084700,
"up_timestamp": 1525948301833084700,
"renew_timestamp": 1525949202959821300,
"dirty_timestamp": 1525948301848680000,
"latest_timestamp": 1525948301833084700
}
]
},
"latest_timestamp": 1525948301833084700
}
}
CURL
curl 'http://127.0.0.1:7171/discovery/fetch?zone=sh1&env=test&appid=provider&status=1'
HTTP
GET http://HOST/discovery/fetchs
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | true | []string | 服务名标识 |
env | true | string | 环境 |
zone | false | string | 可用区,不传返回所有zone的 |
status | true | int | 拉取某状态服务1.接收流量 2.不接收 3.所有状态 |
返回结果
{
"code": 0,
"data": {
"app_id_0": {
"instances": {
"zone001": [
{
"zone": "zone001",
"env": "uat",
"appid": "app_id_0",
"hostname": "hostname000000",
"color": "",
"version": "111",
"metadata": {
"provider": "",
"weight": "10"
},
"addrs": [
"http://172.1.1.1:8080",
"gorpc://172.1.1.1:8089"
],
"status": 1,
"reg_timestamp": 1525948301833084700,
"up_timestamp": 1525948301833084700,
"renew_timestamp": 1525949202959821300,
"dirty_timestamp": 1525948301848680000,
"latest_timestamp": 1525948301833084700
}
]
},
"latest_timestamp": 1525948301833084700
},
"app_id_1": {
"instances": {
"zone001": [
{
"zone": "zone001",
"env": "uat",
"appid": "app_id_1",
"hostname": "hostname111111",
"color": "",
"version": "222",
"metadata": {
"provider": "",
"weight": "10"
},
"addrs": [
"http://172.1.1.1:7070",
"gorpc://172.1.1.1:7079"
],
"status": 1,
"reg_timestamp": 1525948301833084700,
"up_timestamp": 1525948301833084700,
"renew_timestamp": 1525949202959821300,
"dirty_timestamp": 1525948301848680000,
"latest_timestamp": 1525948301833084700
}
]
},
"latest_timestamp": 1525948297987066600
}
}
}
CURL
curl 'http://127.0.0.1:7171/discovery/fetchs?zone=sh1&env=test&appid=provider&appid=provider2&status=1'
HTTP
GET http://HOST/discovery/poll
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | true | string | 服务名标识 |
env | true | string | 环境 |
zone | false | string | 可用区,不传返回所有zone的 |
latest_timestamp | false | int | 服务最新更新时间 |
返回结果
{
"code": 0,
"data": {
"instances": {
"zone001": [
{
"zone": "zone001",
"env": "uat",
"appid": "app_id_0",
"hostname": "hostname000000",
"color": "",
"version": "111",
"metadata": {
"provider": "",
"weight": "10"
},
"addrs": [
"http://172.1.1.1:8080",
"gorpc://172.1.1.1:8089"
],
"status": 1,
"reg_timestamp": 1525948301833084700,
"up_timestamp": 1525948301833084700,
"renew_timestamp": 1525949202959821300,
"dirty_timestamp": 1525948301848680000,
"latest_timestamp": 1525948301833084700
}
]
},
"latest_timestamp": 1525948301833084700
}
}
CURL
curl 'http://127.0.0.1:7171/discovery/poll?zone=sh1&env=test&appid=provider&latest_timestamp=0'
HTTP
GET http://HOST/discovery/polls
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | true | []string | 服务名标识 |
env | true | string | 环境 |
zone | false | string | 可用区,不传返回所有zone的 |
latest_timestamp | false | []int | 服务最新更新时间,要与appid一一对应 |
返回结果
{
"code": 0,
"data": {
"app_id_0": {
"instances": {
"zone001": [
{
"zone": "zone001",
"env": "uat",
"appid": "app_id_0",
"hostname": "hostname000000",
"color": "",
"version": "111",
"metadata": {
"provider": "",
"weight": "10"
},
"addrs": [
"http://172.1.1.1:8080",
"gorpc://172.1.1.1:8089"
],
"status": 1,
"reg_timestamp": 1525948301833084700,
"up_timestamp": 1525948301833084700,
"renew_timestamp": 1525949202959821300,
"dirty_timestamp": 1525948301848680000,
"latest_timestamp": 1525948301833084700
}
]
},
"latest_timestamp": 1525948301833084700
},
"app_id_1": {
"instances": {
"zone001": [
{
"zone": "zone001",
"env": "uat",
"appid": "app_id_1",
"hostname": "hostname111111",
"color": "",
"version": "222",
"metadata": {
"provider": "",
"weight": "10"
},
"addrs": [
"http://172.1.1.1:7070",
"gorpc://172.1.1.1:7079"
],
"status": 1,
"reg_timestamp": 1525948301833084700,
"up_timestamp": 1525948301833084700,
"renew_timestamp": 1525949202959821300,
"dirty_timestamp": 1525948301848680000,
"latest_timestamp": 1525948301833084700
}
]
},
"latest_timestamp": 1525948297987066600
}
}
}
CURL
curl 'http://127.0.0.1:7171/discovery/polls?zone=sh1&env=test&appid=provider1&appid=provider2&latest_timestamp=01&latest_timestamp=02'
HTTP
GET http://HOST/discovery/nodes
请求参数
无
返回结果
{
"code": 0,
"data": [
{
"addr": "172.1.1.1:7171",
"status": 0,
"zone": "zone001"
},
{
"addr": "172.1.1.2:7171",
"status": 0,
"zone": "zone001"
},
{
"addr": "172.1.1.3:7171",
"status": 0,
"zone": "zone001"
}
]
}
CURL
curl 'http://127.0.0.1:7171/discovery/nodes'
HTTP
POST http://HOST/discovery/set
请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
zone | true | string | 可用区 |
env | true | string | 环境 |
appid | true | string | 服务名标识 |
hostname | true | []string | 主机名 |
status | false | []int | 状态,1表示接收流量,2表示不接收 |
color | false | []string | 灰度或集群标识 |
metadata | false | []string | 业务自定义信息 string 必须为map[strinng]string 的json格式 |
返回结果
*****成功*****
{
"code":0,
"message":""
}
****失败****
{
"code":-400,
"message":"-400"
}
CURL
curl 'http://127.0.0.1:7171/discovery/set' -d "zone=sh1&env=test&appid=provider&hostname=myhostname&status=1&color=red&hostname=myhostname2&status=1&color=red"