文档首页 > > API参考> CSE API> 微服务实例> 批量查询微服务实例

批量查询微服务实例

分享
更新时间:2020/06/24 GMT+08:00

功能介绍

实例注册后可以根据微服务版本规则或字段条件批量发现多个微服务的实例。

接口约束

使用时版本号0+这种特殊字符需要注意转码,如果是curl 可以使用引号引起来,例如curl -k "https://{endpoint}/v4/{project_id}/registry/instances?appId=AppTest&serviceName=helloworld&version=0+"

URI

POST /v4/{project_id}/registry/instances/action

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户子项目的唯一标识。字符长度为1~64。

表2 Query参数

参数

是否必选

参数类型

描述

type

String

操作,目前仅有“query”,表示查询

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

x-domain-name

String

租户账号名称。

X-consumer_id

String

微服务消费者的微服务唯一标识。

表4 请求Body参数

参数

是否必选

参数类型

描述

services

Array of FindService objects

查询服务信息结构体。

instances

Array of FindInstance objects

查询实例信息结构体。

表5 FindService

参数

是否必选

参数类型

描述

service

DependencyKey object

依赖关系条目。

rev

String

客户端缓存的版本号。

表6 DependencyKey

参数

是否必选

参数类型

描述

environment

String

development|testing|acceptance|production

appId

String

应用app唯一标识。

serviceName

String

微服务名称,作为provider支持为*,表示依赖同一租户下的所有服务,当服务名称为的时候,appId和version可以省略,consumer不支持

version

String

微服务版本,作为provider支持+,如1.0.1+[表示1.0.1以上的版本(包括1.0.1)]、固定版本和latest(当前最新版本),作为consumer只能为固定版本。

表7 FindInstance

参数

是否必选

参数类型

描述

instance

HeartbeatSetElement object

微服务实例请求结构体。

rev

String

客户端缓存的版本号。

表8 HeartbeatSetElement

参数

是否必选

参数类型

描述

serviceId

String

微服务id

instanceId

String

微服务实例id

响应参数

状态码为 200 时:

表9 响应Body参数

参数

参数类型

描述

services

BatchFindResult object

批量查询结果结构体。

instances

BatchFindResult object

批量查询结果结构体。

表10 BatchFindResult

参数

参数类型

描述

failed

Array of FindFailedResult objects

查询失败结果结构体。

notModified

Array of integers

与请求数组对应的索引集合。

updated

Array of FindResult objects

查询结果结构体列表。

表11 FindFailedResult

参数

参数类型

描述

indexes

Array of integers

与请求数组对应的索引集合。

error

Error object

异常错误结构体。

表12 Error

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

表13 FindResult

参数

参数类型

描述

index

Integer

与请求数组对应的索引。

rev

String

服务端返回集合版本,如跟客户端缓存版本号一致,则instances为空。

instances

Array of MicroServiceInstance objects

实例列表。

表14 MicroServiceInstance

参数

参数类型

描述

instanceId

String

实例id,唯一标识。创建实例,instanceId由service-center产生

serviceId

String

微服务唯一标识,创建实例时,以url里面的为准,不用这里的serviceId。

version

String

微服务版本号

hostName

String

主机信息。

endpoints

Array of strings

访问地址信息。

status

String

实例状态,UP|DOWN|STARTING|OUTOFSERVICE,默认值UP

properties

Map<String, String>

微服务扩展属性,可以自定义 KEY 和相应的 Value。长度最小1字节。

healthCheck

HealthCheck object

健康检查信息。

dataCenterInfo

DataCenterInfo object

数据中心信息。

timestamp

String

实例创建时间戳,自动生成

modTimestamp

String

更新时间

表15 HealthCheck

参数

参数类型

描述

mode

String

心跳模式 push/pull。

port

Integer

端口。

interval

Integer

心跳间隔(秒)。

times

Integer

允许失败次数。

表16 DataCenterInfo

参数

参数类型

描述

name

String

区域名字

region

String

区域

availableZone

String

可获取区

状态码为 400 时:

表17 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

状态码为 500 时:

表18 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

请求示例

GET https://{endpoint}/v4/{project_id}/registry/instances/action

{
  "services" : [ {
    "service" : {
      "appId" : "TestApp",
      "serviceName" : "helloworld1",
      "version" : "0+"
    },
    "rev" : "1.0.0"
  }, {
    "service" : {
      "appId" : "TestApp",
      "serviceName" : "helloworld2",
      "version" : "latest"
    },
    "rev" : "1.0.0"
  } ]
}

响应示例

状态码为 200 时:

{"services" : {"failed" : [{"indexes" : [ 0],"error" : {"errorCode" : "string","errorMessage" : "string","detail" : "string"}}],"notModified" : [ 0],"updated" : [{"index" : 0,"rev" : "string","instances" : [{"instanceId" : "string","serviceId" : "string","version" : "string","hostName" : "string","endpoints" : [ "string","string"],"status" : "string",,"healthCheck" : {"mode" : "string","port" : 0,"interval" : 0,"times" : 0},"dataCenterInfo" : {"name" : "string","region" : "string","availableZone" : "string"},"timestamp" : "string","modTimestamp" : "string"}]}]},"instances" : {"failed" : [{"indexes" : [ 0],"error" : {"errorCode" : "string","errorMessage" : "string","detail" : "string"}}],"notModified" : [ 0],"updated" : [{"index" : 0,"rev" : "string","instances" : [{"instanceId" : "string","serviceId" : "string","version" : "string","hostName" : "string","endpoints" : [ "string","string"],"status" : "string",,"healthCheck" : {"mode" : "string","port" : 0,"interval" : 0,"times" : 0},"dataCenterInfo" : {"name" : "string","region" : "string","availableZone" : "string"},"timestamp" : "string","modTimestamp" : "string"}]}]}}

状态码为 400 时:

{
  "errorCode" : "string",
  "errorMessage" : "string",
  "detail" : "string"
}

状态码为 500 时:

{
  "errorCode" : "string",
  "errorMessage" : "string",
  "detail" : "string"
}

状态码

状态码

描述

200

查询成功。

400

请求参数错误。

500

服务内部错误。

错误码

请参见错误码

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问