簡單來說,API Gateway 是一個伺服器,它充當一組已定義 API 的單一入口點。如果沒有櫃台,訪客(客戶端)將在大廳裡閒逛,敲門尋找他們需要的人。
有了櫃台(Gateway),訪客會去接待員那裡。接待員檢查他們的 ID(身份驗證 ),檢查時間表(授權),然後引導他們到確切的房間(路由)——甚至打電話叫人下來。
技術定義#
API Gateway 是一個專門的 反向代理 (Reverse Proxy) 實作。1.
請求進入:客戶端發送請求到 https://api.example.com/orders/123。
3.
路由:Gateway 知道 /orders 由位於內部 IP 10.0.0.5 的 Order Service 處理。它將請求轉發到那裡。
4.
回應輸出:Order Service 回覆 Gateway,Gateway 將回應轉發給客戶端。
為什麼我們需要它? (解耦)#
主要目標是 解耦 (Decoupling)。客戶端不需要知道後端是如何結構化的。後端重構:您可以完全重寫後端,從 Java 單體變為 Go 微服務,更改 IP 位址和埠。只要 Gateway 保持公開 URL 不變 (/orders),客戶端程式碼就永遠不會崩潰。
集中的橫切關注點 (Centralized Cross-Cutting Concerns)#
「橫切關注點」是每個 API 都需要的東西,比如安全性和日誌記錄。沒有 Gateway:每個微服務團隊(Team A, Team B, Team C)都必須為 Auth、SSL 和日誌記錄編寫程式碼。如果標準變更,每個人都必須更新他們的程式碼。
有 Gateway:您在 Gateway 層級實作 Auth 和 SSL 一次。微服務可以純粹專注於業務邏輯。
關鍵要點#
Gateway 是一個 反向代理,將客戶端與後端服務解耦。
它集中了像 身份驗證、日誌記錄和 SSL 終止 這樣的非功能需求,簡化了微服務開發。
Modified at 2025-12-29 09:35:19