服务(SERVICE)实体,正如其名称所示,是您自己的UPSTREAM服务的抽象。服务的示例将会是数据转换微服务、计费API等。

服务的主要属性是它的URL(在这里,Kong应该代理流量),它可以被设置为单个字符串,或者通过单独指定其协议、主机、端口和路径。

服务与路由相关联(服务可以有许多与之相关联的路由)。路由是在Kong的入口点,并定义了匹配客户端请求的规则。一旦匹配了路由,Kong就会将请求委托给它的相关服务。

先来个简单的示例:

1、添加一个服务(service)

  1. curl -i -X POST \
  2. --url http://192.168.1.12:8001/services/ \
  3. --data 'name=example-service' \
  4. --data 'url=http://mockbin.org'

2、为服务添加一个路由(route)
说明:一个IP地址可以对应多个域名,服务器根据Host这一行中的值来确定本次请求的是哪个具体的网站。

  1. curl -i -X POST \
  2. --url http://192.168.1.12:8001/services/example-service/routes \
  3. --data 'hosts[]=example.com'

3、使用Kong做一个请求转发

  1. curl -i -X GET \
  2. --url http://192.168.1.12:8000/ \
  3. --header 'Host: example.com'

SERVICE API 详解

1、添加service
请求地址:/service/请求方法:POST
请求主体:

属性 描述
name(可选) 服务名称.
protocol 该协议用于与upstream通信。它可以是http(默认)或https。
host upstream服务器的主机。
port upstream服务器端口。默认为80
path(可选) 在向upstream服务器请求中使用的路径。默认为空。
retries(可选) 在代理失败的情况下执行的重试次数。默认值是5。
connect_timeout(可选) 建立到upstream服务器的连接的超时时间。默认为60000。
write_timeout(可选) 将请求发送到upstream服务器的两个连续写操作之间的超时时间。默认为60000。
read_timeout(可选) 将请求发送到upstream服务器的两个连续读取操作之间的超时时间。默认为60000。
url(简写属性) 将协议、主机、端口和路径立即设置成简短的属性。这个属性是只写的(管理API从来不“返回”url)。

2、查找service
请求地址:/services/{name or id}

请求方法:GET

PATH参数:

属性 描述
name or id(必填) 检索的唯一标识符或服务名称。

请求地址:/routes/{route id}/service

PATH方法:GET

请求参数:

属性 描述
route id(必填) 属于要检索的服务的路由的唯一标识符。

3、查找service列表
请求地址:/services/

请求方法:GET

请求参数:

属性 描述
offset(可选) 用于分页的游标。偏移量是定义列表中的位置的对象标识符。
size(可选,默认是100 max是1000) 每个页面返回的对象数量的限制。

4、更新service
请求地址:`/services/{name or id}

<br />请求方法:PATCH`

PATH参数:

属性 描述
name or id(必填) 要更新的服务的id或name属性。

请求地址:`/routes/{route id}/service

<br />请求方法:PATCH`

PATH参数:

属性 描述
route id(必填) 要更新服务的路由的id属性。

请求主体:同1、新增service

5、删除service
请求地址:/services/{name or id}

请求方法:DELETE

PATH参数:

属性 描述
name or id(必填) 要删除的服务的id或name属性。