HTTP服务

类别属性
服务网关转发

功能描述

服务是一组可用的api,用于网关转发。可配置服务发现或匿名服务。

OpenAPI配置服务

请求参数说明

参数名值类型是否必填值可能性默认值说明
namestring实例名
driverstring"http_proxy"服务驱动类型
descriptionstring描述
schemestring["http","https"]http请求所使用的协议
retryint0重试次数
timeoutint2000超时时间,单位:毫秒
discoverystring服务发现ID
servicestring所在注册中心的服务名 或者 静态服务发现配置
nodesarray_string匿名服务地址,可以填多个。配置格式是是静态接入地址及其权重,格式:addr weight。addr可以填域名或者ip地址。weight可省略,默认为1
balancestring["round-robin","ip-hash"]round-robin负载均衡算法
pluginsobject插件配置

备注

  • service参数配置说明:具体填写内容根据discovery参数所使用的服务发现driver类型而定。
    • 若使用nacos,consul,eureka注册中心,service字段填注册中心内的服务名。如:"redis"。
    • 若使用静态服务发现,则配置填入静态接入地址及其权重,格式为:addr1 weight=num1;addr2 weight=num2; 不同地址之间用分号进行分割,addr可以填域名或者ip地址,weight可省略,默认为1。如:"172.17.0.3:80;172.17.0.4:80" weight=100
  • nodes参数配置说明:匿名服务地址,字符串数组。格式为:addr weight=num。addr可以填域名或者ip地址。weight可省略,默认为1。如["172.17.0.3","172.17.0.4:80 weight=10","demoHost.com weight=100"]
  • 若使用服务发现则需要填写discoveryservice;使用匿名服务则填写nodes
  • 服务发现和匿名服务必须选填其中一个,若都填了,则最终使用服务发现。
  • plugins具体配置点此进行跳转。

返回参数说明

参数名类型是否必含说明
idstring实例id
namestring实例名
driverstring驱动名
descriptionstring描述
professionstring模块名
createstring创建时间
updatestring更新时间
schemestring请求所使用的协议
retryint重试次数
timeoutint超时时间,单位:毫秒
discoverystring服务发现ID
servicestring所在注册中心的服务名 或者 静态服务发现配置
nodesarray_string匿名服务地址,可以填多个,配置格式是是静态接入地址及其权重,格式:addr weight。addr可以填域名或者ip地址。weight可省略,默认为1
balancestring负载均衡算法
pluginsobject插件配置

不同场景下的配置示例

  • 普通场景
  • 高可用场景
一、普通场景,不需高可用的服务配置示例

通过anonymous字段直接配置上游地址

备注:匿名服务配置的是apinto官方示例接口, 并且该示例不配置插件。

curl -X POST  \
  'http://127.0.0.1:9400/api/service' \
  -H 'Content-Type:application/json' \
  -d '{
	"name": "annoymous_service",
	"driver": "http",
	"description": "配置匿名服务",
	"timeout": 3000,
	"retry": 3,
	"scheme": "HTTPS",
	"nodes": ["demo.apinto.com:8280"],
	"balance": "round-robin"
}'

返回结果示例

{
	"create": "2022-06-16 11:00:45",
	"description": "配置匿名服务",
	"driver": "http",
	"id": "annoymous_service@service",
	"name": "annoymous_service",
	"profession": "service",
	"retry": 3,
	"scheme": "HTTPS",
	"timeout": 3000,
	"update": "2022-06-16 11:00:45",
	"discovery": "",
    "service": "",
    "nodes": ["demo.apinto.com:8280"],
	"balance": "round-robin",
	"plugins": null
}
二、高可用场景,高可用的服务配置示例

discovery字段填上配置了服务发现的负载。

此处已经配置id为consul_demo@discovery的服务发现,服务发现配置教程点此进行跳转

curl -X POST  \
  'http://127.0.0.1:9400/api/service' \
  -H 'Content-Type:application/json' \
  -d '{
	"name": "consul_service",
	"driver": "http",
	"description": "配置了consul服务发现的服务",
	"scheme": "HTTP",
	"timeout": 3000,
	"retry": 3,
	"discovery": "consul_demo@discovery",
	"service": "redis",
	"balance": "round-robin"
}'

返回结果示例

{
	"create": "2022-06-16 11:05:35",
	"description": "配置了负载的服务",
	"driver": "http",
	"id": "consul_service@service",
	"name": "consul_service",
	"profession": "service",
	"retry": 3,
	"scheme": "http",
	"timeout": 3000,
	"update": "2022-06-16 11:05:35",
	"discovery": "consul_demo@discovery",
    "service": "redis",
	"nodes": null,
    "balance": "round-robin",
	"plugins": null
}