雖然簡單的路由是核心功能,但現代 API Gateway 是提供廣泛功能的強大平台。以下是最關鍵的功能。1. 路由和負載平衡#
基於路徑的路由:/users -> User Service, /products -> Product Service。
負載平衡:如果 User Service 有 3 個實例,Gateway 會在它們之間分配流量(輪詢、最少連接)以確保高可用性。
2. 身份驗證和授權 (Auth 卸載)#
與其讓每個微服務驗證 JWT,不如讓 Gateway 全域執行。Gateway 檢查 Authorization Header。
如果有效,它將請求傳遞給後端(通常添加像 X-User-ID: 123 這樣的 Header,以便後端知道是誰)。
如果無效,它會立即返回 401,保護後端免受不良流量的影響。
3. 速率限制和節流 (Throttling)#
保護您的服務免受過度負荷(DDoS 或意外峰值)。速率限制:「使用者 A 每分鐘可以發出 100 個請求。」
節流:「如果請求超過 1000/秒,則建立佇列,緩慢處理它們而不是丟棄它們。」
貨幣化:您可以銷售 API 層級(銅牌:100 次呼叫/天,金牌:無限),並在 Gateway 強制執行這些限制。
4. 協議轉換#
範例:客戶端說經典 REST (HTTP/JSON),但舊版後端說 SOAP (XML),或現代後端說 gRPC。Gateway 會即時轉換 Payload。
5. 請求/回應轉換#
資料遮蔽:在將回應發送給客戶端之前,從回應中刪除敏感欄位(例如,刪除 credit_card_id)。
Header 修改:新增 Trace-ID Header 用於可觀察性。
6. 快取 (Caching)#
如果 10,000 個使用者請求「獲取產品類 別」(這很少更改),Gateway 會提供快取版本,每 10 分鐘只會訪問資料庫一次。
7. 監控和分析#
由於所有流量都流經 Gateway,因此它是收集指標的完美場所。
關鍵要點#
Gateways 處理 道路交通(路由、負載平衡)和 安全性(Auth、速率限制)。
它們還可以執行 轉換(REST 到 gRPC)和 快取 以最佳化性能。
Modified at 2025-12-29 09:35:19