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

创建微服务静态信息

功能介绍

在注册微服务实例前需要创建服务静态信息,之后注册的微服务实例根据serviceId这个字段与静态信息关联,一个服务对应对多个实例。

serviceId可以定制。如果定制了,系统将使用定制的serviceId;如果没有定制,系统会随机生成serviceId。

接口约束

URI

POST /v4/{project_id}/registry/microservices

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

请填固定值:default。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Authorization

String

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

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

Authorization:Bearer {Token}

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

表3 请求Body参数

参数

是否必选

参数类型

描述

service

MicroService object

微服务信息。

rules

Array of Rule objects

黑白名单信息。

instances

Array of MicroServiceInstance objects

实例信息。

tags

Object

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

表4 MicroService

参数

是否必选

参数类型

描述

serviceId

String

微服务唯一标识。字符长度为1~64。正则表达式为^.*$。

environment

String

用于区分微服务环境,取值为development、testing、acceptance、production。当配置为development、testing或acceptance时,可以通过批量上传schemas接口新增或者修改已存在的Schema;当配置为production时,则不可以新增或者修改Schema。默认值development。

appId

String

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

serviceName

String

微服务名称,同一个App要保证唯一。字符长度为1~128。 正则表达式为^[a-zA-Z0-9]$|^[a-zA-Z0-9][a-zA-Z0-9_-.][a-zA-Z0-9]$。

version

String

微服务版本号。字符长度为1~64。 正则表达式为^[0-9]$|^[0-9]+(.[0-9]+)$。

description

String

微服务描述信息。字符长度不超过256。

level

String

微服务层级:FRONT、MIDDLE、BACK。

registerBy

String

微服务注册方式:SDK、PLATFORM、SIDECAR、UNKNOWN。

schemas

Array of strings

微服务访问契约内容的外键ID,数组长度最大100个契约。

status

String

微服务状态,UP表示上线,DOWN表示下线,默认值UP。

timestamp

String

微服务注册时间。

modTimestamp

String

最后修改UTC时间。

framework

Framework object

开发框架信息。

paths

Array of ServicePath objects

服务路由信息。

表5 Framework

参数

是否必选

参数类型

描述

name

String

微服务开发框架,默认值为UNKNOWN。

version

String

微服务开发框架版本号。

表6 ServicePath

参数

是否必选

参数类型

描述

Path

String

路由地址。

Property

Object

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

表7 Rule

参数

是否必选

参数类型

描述

ruleId

String

自定义ruleId。

ruleType

String

rule类型:WHITE或者BLACK。

attribute

String

如果是tag_xxx开头,则按Tag过滤attribute属性,否则,则按"serviceId", "AppId", "ServiceName", "Version", "Description", "Level", "Status"过滤。

pattern

String

匹配规则,正则表达式,长度1到64。

description

String

rule描述。

timestamp

String

只有获取rule时返回使用,创建rule的时间。

modTimestamp

String

更新时间。

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

更新时间。

表9 HealthCheck

参数

是否必选

参数类型

描述

mode

String

心跳模式: push或者pull。

port

Integer

端口。

interval

Integer

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

times

Integer

最大尝试请求次数。

表10 DataCenterInfo

参数

是否必选

参数类型

描述

name

String

区域名称。

region

String

区域。

availableZone

String

可用区。

响应参数

状态码: 200

表11 响应Body参数

参数

参数类型

描述

serviceId

String

微服务唯一标识。

状态码: 400

表12 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

状态码: 500

表13 响应Body参数

参数

参数类型

描述

errorCode

String

错误代码。

errorMessage

String

错误信息。

detail

String

详细定位信息。

请求示例

创建一个微服务的静态信息,其微服务名为test,微服务版本为1.0.0,rule的类型为白名单,实例的主机信息为instanceTest,访问地址为rest:127.0.0.1:8080。

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

{
	"service": {
		"appId": "default",
		"serviceName": "test",
		"version": "1.0.0",
		"description": "this is a test"
	},
	"rules": [{
		"ruleType": "WHITE",
		"attribute": "tag_123",
		"pattern": "aaa"
	}],
	"instances": [{
		"hostName": "instanceTest",
		"endpoints": ["rest:127.0.0.1:8080"]
	}],
	"tags": {
		"test_tag1": "test_tag1",
		"test_tag2": "test_tag2",
		"test_tag3": "test_tag3"
	}
}

响应示例

状态码: 200

创建成功。serviceId为该微服务生成的ID。后续的操作都是针对该微服务ID进行操作。

{
  "serviceId" : "8aed80ea052ac04a64dfc79c24f2170224d074f5"
}

状态码

状态码

描述

200

创建成功。

400

错误的请求。

500

服务内部错误。

错误码

请参见ServiceComb错误码

相关文档