壹、API網關產生的背景
在微服務架構中,壹個大的應用程序將被分割成幾個小的單個服務。這些小服務有自己的處理,自己的數據庫(也可以用* * *),或許語言也不壹樣。它們可以部署在壹個或多個服務器上,這實際上是為了解耦復雜的應用程序。那麽為什麽微服務需要API網關呢?
我們來看看微服務產生的問題:
客戶端需要知道多個服務地址。
壹般函數怎麽處理?例如認證、流量控制、日誌記錄等。
以前壹個功能可能壹個請求就完成了,現在可能需要多個服務壹起進行。我們如何減少客戶請求的時間?
由於上述問題,需要在所有服務的前面定義壹個代理,即API網關。所有的客戶端請求都必須通過API網關到達真實的服務地址,這樣可以有效避免真實地址的暴露。同時,API網關還可以集成認證、流量控制、日誌、API聚合、黑白名單等。
二、孔的簡介
Kong是Mashape和開源在2015開發的API網關框架。它基於nginx和OpenResty,主要特點是性能高,擴展性強。因為是基於nginx開發的,所以很多關於nginx的在線調優資料都可以在Kong上使用,包括負載均衡或者充當web服務器。
孔的擴展是通過插件機制進行的,同時也提供了壹個插件定制的樣例方法。插件定義了壹個請求從錄入到反饋給客戶端的整個生命周期,所以計算機培訓認為可以滿足大部分的定制需求。孔本身集成了不少插件,包括CORS跨域、日誌、限流、轉發、健康檢查、熔斷等。從github開始,API聚合功能也進入了開發階段。