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

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

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

先来个简单的示例:

1、添加一个服务(service)

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

2、为服务添加一个路由(route)

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

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

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

curl -i -X GET \
--url http://192.168.1.12:8000/ \
--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}
请求方法:PATCH
PATH参数:

属性

描述

name or id(必填)

要更新的服务的id或name属性。

请求地址:/routes/{route id}/service
请求方法:PATCH
PATH参数:

属性

描述

route id(必填)

要更新服务的路由的id属性。

请求主体:同1、新增service

5、删除service

请求地址:/services/{name or id}
请求方法:DELETE
PATH参数:

属性

描述

name or id(必填)

要删除的服务的id或name属性。