服务(SERVICE)实体,正如其名称所示,是您本身的UPSTREAM服务的抽象。服务的示例将会是数据转换微服务、计费API等。服务器
服务的主要属性是它的URL(在这里,Kong应该代理流量),它能够被设置为单个字符串,或者经过单独指定其协议、主机、端口和路径。curl
服务与路由相关联(服务能够有许多与之相关联的路由)。路由是在Kong的入口点,并定义了匹配客户端请求的规则。一旦匹配了路由,Kong就会将请求委托给它的相关服务。微服务
先来个简单的示例:网站
一、添加一个服务(service)url
curl -i -X POST \ --url http://192.168.1.12:8001/services/ \ --data 'name=example-service' \ --data 'url=http://mockbin.org'
二、为服务添加一个路由(route)代理
说明:一个IP地址能够对应多个域名,服务器根据Host这一行中的值来肯定本次请求的是哪一个具体的网站。code
curl -i -X POST \ --url http://192.168.1.12:8001/services/example-service/routes \ --data 'hosts[]=example.com'
三、使用Kong作一个请求转发对象
curl -i -X GET \ --url http://192.168.1.12:8000/ \ --header 'Host: example.com'
SERVICE API 详解:路由
一、添加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)。 |
二、查找service
请求地址:/services/{name or id}
请求方法:GET
PATH参数:
属性 | 描述 |
---|---|
name or id(必填) | 检索的惟一标识符或服务名称。 |
请求地址:/routes/{route id}/service
PATH方法:GET
请求参数:
属性 | 描述 |
---|---|
route id(必填) | 属于要检索的服务的路由的惟一标识符。 |
三、查找service列表
请求地址:/services/
请求方法:GET
请求参数:
属性 | 描述 |
---|---|
offset(可选) | 用于分页的游标。偏移量是定义列表中的位置的对象标识符。 |
size(可选,默认是100 max是1000) | 每一个页面返回的对象数量的限制。 |
四、更新service
请求地址:/services/{name or id}
请求方法:PATCH
PATH参数:
属性 | 描述 |
---|---|
name or id(必填) | 要更新的服务的id或name属性。 |
请求地址:/routes/{route id}/service
请求方法:PATCH
PATH参数:
属性 | 描述 |
---|---|
route id(必填) | 要更新服务的路由的id属性。 |
请求主体:同一、新增service
五、删除service
请求地址:/services/{name or id}
请求方法:DELETE
PATH参数:
属性 | 描述 |
---|---|
name or id(必填) | 要删除的服务的id或name属性。 |