更新时间:2022-08-15 GMT+08:00

批量查询微服务实例

功能介绍

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

URI

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

表1 路径参数

参数

类型

必选

说明

project_id

String

请填固定值:default。

表2 Query参数

参数

类型

必选

说明

type

String

操作类型。

填固定值:query。

请求消息

表3 请求Header参数

参数

类型

必选

说明

X-ConsumerId

String

服务消费者唯一标识。

表4 参数说明

参数

类型

必选

说明

services

Array of objects

微服务请求结构体,具体参考表5

instances

Array of objects

微服务实例请求结构体,具体参考表6

表5 FindService参数说明

参数

类型

必选

说明

service

Object

微服务请求结构体,具体参考DependencyMicroService

rev

String

客户端缓存的版本号。

表6 FindInstance参数说明

参数

类型

必选

说明

instance

Object

微服务实例请求结构体,具体参考HeartbeatSetElement

rev

String

客户端缓存的版本号。

响应消息

响应参数

参数说明请参见表7

表7 参数说明

参数

类型

说明

services

BatchFindResult

微服务发现的响应结构体。

instances

BatchFindResult

微服务实例发现的响应结构体。

表8 BatchFindResult参数说明

参数

类型

说明

failed

Array of objects

部分微服务发现失败的响应结构体,具体参考表9

notModified

Array of integers

实例没有发生变化的索引数组,每一项的值对应请求结构体中微服务数组的索引值。

updated

Array of objects

实例发生变化的响应结构体,具体参考表10

表9 FindFailedResult参数说明

参数

类型

说明

indexes

Array of integers

微服务发现失败的索引数组,每一项的值对应请求结构体中微服务数组的索引值。

error

Object

错误信息结构体,具体参考Error

表10 FindResult参数说明

参数

类型

说明

index

Integer

实例发生变化的索引数组,每一项的值对应请求结构体中微服务数组的索引值。

rev

String

返回给客户端缓存的版本号。

instances

Array of objects

微服务实例的集合,具体参考MicroServiceInstance

示例

请求示例

curl -X POST "/v4/default/registry/instances/action?type=query" -H "accept: application/json" -H "Content-Type: application/json" -d '
{
  "services": [
    {
      "service": {
        "environment": "string",
        "appId": "string",
        "serviceName": "string",
        "version": "string"
      },
      "rev": "string"
    }
  ],
  "instances": [
    {
      "instance": {
        "serviceId": "string",
        "instanceId": "string"
      },
      "rev": "string"
    }
  ]
}

响应示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Server: SERVICECENTER/0.0.1
Vary: Accept-Encoding
Vary: Origin
X-Response-Status: 200
Date: Fri, 21 Dec 2018 02:36:48 GMT
Content-Length: 1952

{
  "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"
            ],
            "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"
            ],
            "status": "string",
            "healthCheck": {
              "mode": "string",
              "port": 0,
              "interval": 0,
              "times": 0
            },
            "dataCenterInfo": {
              "name": "string",
              "region": "string",
              "availableZone": "string"
            },
            "timestamp": "string",
            "modTimestamp": "string"
          }
        ]
      }
    ]
  }
}

状态码

状态码请参见状态码

错误码

错误码请参见CSE错误码