引入微服務後,客戶端(APP,H5,小程序)等一般需要同時調用多個後臺的服務,
- 一方面每當引入新的服務時,客戶端需要能感知到更新的信息或者配置域名,
- 另一方面,後端的每一個服務可能都要重複實現一些安全、流量控制(限流、排隊、降級、熔斷)、日誌功能,這個過程當服務多了就非常麻煩。
API Gateway 即 API 網關的出現,就是來解決這些問題的。
API Gateway是位於客戶端和API的一個單點入口,將客戶端的請求反向代理到後端的一組微服務上,同時,天然的路徑優勢,使得API網關可以做一些面向切面的工作
什麼是 KONG ?
KONG 是一款開源的基於 nginx + openresty + 插件的 api 網關;
KONG 有哪些優勢?
KONG 是有幾大核心優勢的,能受歡迎自然有它的道理:
幾大核心優勢:
- 本身基於 Nginx + lua 以及 Openresty 這個平臺,性能優勢極高
- 由 於插件化的機制,編寫的lua腳本可以在無需重啟nginx的情況下熱部署生效;
- 一般公司對nginx的積累都不錯,特別是運維,因此學習和上手很容易;本質上就是在nginx上外掛了kong的配置,且天然集成了 openresty
- 支持雲原生,kubernetes 中 ingress 認證kong為可選網關 (默認是nginx)
- 開源(基於 Apache 2.0協議)、 社區活躍(github)、插件豐富
KONG 有哪些功能?
- 認證(Authentication): 支持 basic auth、jwt、LDAP、oauth2 等認證機制
- 安全(Security):支持CORS、機器人檢測、IP限制等操作
- 流量控制(Traffic Control): 支持基於角色的權限控制、代理緩存、RateLimiter等
- 統計監控(analytics & monitoring):支持 zipkin、Prometheus 等監控系統
- 日誌(Logging) : 支持豐富的日誌插件
- 轉換(Transformation):進行請求改寫等操作
這麼多的插件,開箱即用;一個http請求即生效 ~
接下來我們會開始介紹如何快速上手KONG。
閱讀更多 架構漫談 的文章