静态负载

功能描述

静态服务发现提供了服务的接入地址,方便网关在转发时进行负载均衡处理。

静态服务可选择是否进行健康检查。

健康检查:定期检查转发地址的健康状况。

OpenAPI配置服务发现

配置参数

参数名值类型是否必填值可能性默认值说明
namestring实例名
driverstringstatic所使用的服务发现驱动
descriptionstring描述
scheme(已废弃,apinto版本0.7.0起)string["http","https]http请求服务发现地址时使用的协议
health_onboolfalse是否开启健康检查
healthobject健康检查配置
health -> schemestring["http","https","tcp","udp"]请求协议
health -> methodstring请求方法
health -> urlstring节点的健康检查接口url
health -> success_codeint成功状态码
health -> periodint健康检查周期,单位: s
health -> timeoutint超时时间,单位: ms

返回参数说明

参数名类型是否必含说明
idstring实例id
namestring实例名
driverstring驱动名
descriptionstring描述
professionstring模块名
createstring创建时间
updatestring更新时间
scheme(已废弃,apinto版本0.7.0起)string请求服务发现地址时使用的协议
health_onbool是否开启健康检查
healthobject健康检查配置

备注:返回体内的health参考请求配置参数,在此不再赘述。

配置带健康检查的静态服务发现

curl -X POST  \
  'http://127.0.0.1:9400/api/discovery' \
  -H 'Content-Type:application/json' \
  -d '{
  	"name": "demo_static",
	"driver": "static",
	"description": "开启健康检查的static服务发现",
	"health_on": true,
	"health": {
		"scheme": "http",
		"method": "GET",
		"url": "/health/check",
		"success_code": 200,
		"timeout": 3000,
		"period": 30
	}
}'

结果示例

{
	"id": "demo_static@discovery",
	"name": "demo_static",
	"driver": "static",
	"description": "开启健康检查的static服务发现",
	"profession": "discovery",
	"create": "2022-06-15 10:18:36",
	"update": "2022-06-15 10:18:36",
	"health_on": true,
	"health": {
		"method": "GET",
		"period": 30,
		"scheme": "http",
		"success_code": 200,
		"timeout": 3000,
		"url": "/health/check"
	}
}
返回的discoveryID为demo_static@discovery

创建服务

服务发现id绑定服务:上一步生成的服务发现id绑定至服务的discovery字段

备注:当使用静态服务发现,service填写的是静态接入地址

curl -X POST  \
  'http://127.0.0.1:9400/api/service' \
  -H 'Content-Type:application/json' \
  -d '{
	"name": "static_service",
	"driver": "http",
	"description": "配置了static服务发现的服务",
	"scheme": "http",
	"timeout": 3000,
	"retry": 3,
	"discovery": "demo_static@discovery",
	"service": "127.0.0.1:8580 weight=1000;10.1.1.2 weight=10",
	"balance": "round-robin"
}'