服務(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屬性。 |