更新时间:2024-12-16 GMT+08:00

按条件查询微服务实例

功能介绍

实例注册后可以根据微服务字段条件发现该微服务的实例。

URI

GET /v4/{project_id}/registry/instances

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

  • 微服务引擎专业版,请填租户项目id,长度为1~64,获取方法请参考获取项目ID。也可以填固定值default。
  • 微服务引擎专享版,请填固定值:default。
表2 Query参数

参数

是否必选

参数类型

描述

appId

String

应用app唯一标识。字符长度为1~160。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。

serviceName

String

微服务名称。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。

tags

String

Tag标签过滤,多个时逗号分隔。 正则表达式为^[a-zA-Z][a-zA-Z0-9_-.]{0,63}$。

env

String

实例的环境信息。

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-ConsumerId

String

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

Authorization

String

若微服务引擎专享版开启了安全认证,此参数必填。否则,无此参数。

开启了安全认证的微服务引擎专享版Token,格式为:

Authorization:Bearer {Token}

Token获取方法,请参考获取微服务引擎专享版用户Token

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

instances

Array of MicroServiceInstance objects

实例列表。

表5 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

Object

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

healthCheck

HealthCheck object

健康检查信息。

dataCenterInfo

DataCenterInfo object

数据中心信息。

timestamp

String

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

modTimestamp

String

更新时间。

表6 HealthCheck

参数

参数类型

描述

mode

String

心跳模式push/pull。

port

Integer

端口。

interval

Integer

心跳间隔(秒),当值小于5秒时,按5秒注册。

times

Integer

最大尝试请求次数。

表7 DataCenterInfo

参数

参数类型

描述

name

String

区域名称。

region

String

区域。

availableZone

String

可用区。

状态码: 400

表8 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

状态码: 500

表9 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

请求示例

查询符合应用ID为default,微服务名称为test的微服务的实例。

GET https://{endpoint}/v4/{project_id}/registry/instances?appId=default&serviceName=test

响应示例

状态码: 200

查询成功。

{
    "instances": [
        {
            "instanceId": "4098483294bb42d8b3c27eee0c166c1c",
            "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": "1650545431",
            "modTimestamp": "1650545442",
            "version": "1.0.0"
        }
    ]
}

状态码

状态码

描述

200

查询成功。

400

错误的请求。

500

服务内部错误。

错误码

请参见ServiceComb错误码