服务(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属性。 |