批量查询微服务实例 - QueryMicroserviceInstancesInBatches
功能介绍
实例注册后可以根据微服务字段条件批量发现多个微服务的实例。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,当前API调用无需身份策略权限。
URI
POST /v4/{project_id}/registry/instances/action
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 请填固定值:default。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
type | 是 | String | 操作类型,目前仅有“query”,表示查询。 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-consumerId | 否 | String | 微服务消费者的微服务唯一标识。 |
Authorization | 否 | String | 若ServiceComb引擎专享版开启了安全认证,此参数必填。否则,无此参数。 开启了安全认证的ServiceComb引擎专享版Token,格式为: Authorization:Bearer {Token} Token获取方法,请参考获取ServiceComb引擎专享版用户Token。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
services | 两个参数至少必须选择一个。 | Array of FindService objects | 查询服务信息结构体。 |
instances | Array of FindInstance objects | 查询实例信息结构体。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
service | 是 | DependencyKey object | 依赖关系条目。 |
rev | 否 | String | 客户端缓存的版本号,用于判断本地缓存和服务中心微服务的差异。
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
environment | 是 | String | 环境信息。 取值范围:
|
appId | 是 | String | 应用app唯一标识。 |
serviceName | 是 | String | 微服务名称。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
instance | 否 | HeartbeatSetElement object | 微服务实例请求结构体。 |
rev | 否 | String | 客户端缓存的版本号,用于判断本地缓存和服务中心微服务实例的差异。
|
响应参数
状态码: 200
参数 | 参数类型 | 描述 |
|---|---|---|
services | BatchFindResult object | 批量查询结果结构体。 |
instances | BatchFindResult object | 批量查询结果结构体。 |
参数 | 参数类型 | 描述 |
|---|---|---|
failed | Array of FindFailedResult objects | 查询失败结果结构体。 |
notModified | Array of integers | 与请求数组对应的索引集合。 |
updated | Array of FindResult objects | 查询结果结构体列表。 |
参数 | 参数类型 | 描述 |
|---|---|---|
index | Integer | 与请求数组对应的索引。 |
rev | String | 服务端返回集合版本,如跟客户端缓存版本号一致,则instances为空。 |
instances | Array of MicroServiceInstance objects | 实例列表。 |
参数 | 参数类型 | 描述 |
|---|---|---|
instanceId | String | 实例id,唯一标识。创建实例,instanceId由service-center产生。 |
serviceId | String | 微服务唯一标识,创建实例时,以url里面的为准,不用这里的serviceId。 |
version | String | 微服务版本号。 |
hostName | String | 主机信息。 |
endpoints | Array of strings | 访问地址信息。 |
status | String | 实例状态。 取值范围:
|
properties | Object | 微服务扩展属性,可以自定义KEY和相应的Value。长度最小为1字节。 |
healthCheck | HealthCheck object | 健康检查信息。 |
dataCenterInfo | DataCenterInfo object | 数据中心信息。 |
timestamp | String | 实例创建时间戳,自动生成。 |
modTimestamp | String | 更新时间。 |
参数 | 参数类型 | 描述 |
|---|---|---|
mode | String | 心跳模式push/pull。 |
port | Integer | 端口。 |
interval | Integer | 心跳间隔(秒),当值小于5秒时,按5秒注册。 |
times | Integer | 最大尝试请求次数。 |
状态码: 400
参数 | 参数类型 | 描述 |
|---|---|---|
errorCode | String | 错误代码。 |
errorMessage | String | 错误信息。 |
detail | String | 详细定位信息。 |
状态码: 500
参数 | 参数类型 | 描述 |
|---|---|---|
errorCode | String | 错误代码。 |
errorMessage | String | 错误信息。 |
detail | String | 详细定位信息。 |
请求示例
查询应用ID为default,微服务名称为test的微服务的所有实例。
POST https://{endpoint}/v4/{project_id}/registry/instances/action?type=query
{
"services": [
{
"service": {
"environment": "",
"appId": "default",
"serviceName": "test"
},
"rev": "0"
}
]
} 响应示例
状态码: 200
查询成功。
{
"services": {
"updated": [
{
"index": 0,
"rev": "0feb784798bca7b2fb4de8351578c4437b516c4b",
"instances": [
{
"instanceId": "79cdaf47cacf43a5b2b4185527da2255",
"serviceId": "8aed80ea052ac04a64dfc79c24f2170224d074f5",
"endpoints": [
"rest:127.0.0.1:8080"
],
"hostName": "hostNameTest",
"status": "UP",
"properties": {
"engineID": "30c263e5-2eac-4da1-9c72-5abb9ac94550",
"engineName": "cse-fkln1-HA"
},
"healthCheck": {
"mode": "push",
"interval": 30,
"times": 3
},
"timestamp": "1650546183",
"modTimestamp": "1650546183",
"version": "1.0.0"
}
]
}
]
}
} 状态码
状态码 | 描述 |
|---|---|
200 | 查询成功。 |
400 | 错误的请求。 |
500 | 服务内部错误。 |
错误码
请参见ServiceComb错误码。

