更新时间:2024-12-04 GMT+08:00
分享

注册微服务实例

功能介绍

创建微服务后就可以注册该微服务的实例。

注册微服务实例时,需提供该微服务实例相关的信息。

instanceId可定制,如果定制了,再次注册就直接全内容覆盖;如果没有定制,系统自动生成id,如果endpoints内容重复,则使用原来的id。

URI

POST /v4/{project_id}/registry/microservices/{service_id}/instances

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

service_id

String

微服务唯一标识。字符长度为1~64,正则表达式为^.*$。获取方法请参考查询所有微服务信息

请求参数

表2 请求Header参数

参数

是必选

参数类型

描述

Authorization

String

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

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

Authorization:Bearer {Token}

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

表3 请求Body参数

参数

是否必选

参数类型

描述

instance

MicroServiceInstance object

微服务实例信息。

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

更新时间。

表5 HealthCheck

参数

是否必选

参数类型

描述

mode

String

心跳模式push/pull。

port

Integer

端口。

interval

Integer

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

times

Integer

最大尝试请求次数。

表6 DataCenterInfo

参数

是否必选

参数类型

描述

name

String

区域名字。

region

String

区域。

availableZone

String

可用区。

响应参数

状态码: 200

表7 响应Body参数

参数

参数类型

描述

instanceId

String

实例ID。

状态码: 400

表8 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

状态码: 500

表9 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

请求示例

注册一个微服务实例,其主机信息为localhost,健康检查的心跳模式为push,心跳间隔为30s,所在region为r1,名字为dc,可用区为az1。

POST https://{endpoint}/v4/{project_id}/registry/microservices/{service_id}/instances

{
  "instance" : {
    "endpoints" : [ "grpc://127.0.1.312:9980", "rest://127.0.0.111:8081" ],
    "hostName" : "localhost",
    "status" : "UP",
    "properties" : {
      "_TAGS" : "A, B",
      "attr1" : "a",
      "nodeIP" : "127.0.0.1"
    },
    "dataCenterInfo" : {
      "name" : "dc",
      "region" : "r1",
      "availableZone" : "az1"
    },
    "healthCheck" : {
      "mode" : "push",
      "interval" : 30,
      "times" : 3
    }
  }
}

响应示例

状态码: 200

注册成功。

{
  "instanceId" : "8540bb8b693c4ad1a7fb6a756c415244"
}

状态码

状态码

描述

200

注册成功。

400

错误的请求。

500

服务内部错误。

错误码

请参见ServiceComb错误码

相关文档