API Gateway vs 負載平衡器 vs 服務網格
在微服務網路的世界裡,這三個術語經常讓開發人員感到困惑。它們都管理流量,但它們服務於不同的目的並且在不同的層級運作。1. 負載平衡器 (Load Balancer) - 交通警察#
負載平衡器(如 HAProxy 或 AWS ALB)主要關注可用性和可擴展性。層級:通常是第 4 層(傳輸層),但也可以是第 7 層。
工作:「我有 10 台伺服器。我會將傳入的 1000 個請求平均分配給它們,這樣就不會有任何一台伺服器崩潰。」
智慧:低。它通常不關心請求的內容(如 User ID),只關心目標 IP/Port 邏輯。
2. API Gateway (接待員)#
API Gateway 是負載平衡器加上大量的應用程式邏輯。工作:「南北向 (North-South)」流量(Client 到 Server)。它管理進入您系統的入口。
智慧:高。它讀取 JWT Token、檢查速率限制、將 XML 轉換為 JSON,並根據 URL 路徑進行路由。
3. 服務網格 (Service Mesh) - 內部郵件系統#
服務網格(如 Istio 或 Linkerd)管理東西向 (East-West) 流量(Service 到 Service)。情境:一旦 Gateway 允許請求進入,服務 A 可能需要呼叫服務 B,而服務 B 又呼叫服務 C。
工作:確保這些內部呼叫是可靠的(重試、斷路器)、安全的(服務之間的 mTLS)和可觀察的。
架構:通常實作為「Sidecar Proxy」(在每個微服務實例旁邊運行的微型伺服器)。
比較總結#
| 組件 | 方向 | 主要目標 | 範例 |
|---|
| 負載平衡器 | 南北向 (主要) | 分配 & 正常運行時間 | AWS ALB, Nginx (Basic) |
| API Gateway | 南北向 | 安全地將 API 暴露給外部世界 | Kong, APISIX, AWS API Gateway |
| 服務網格 | 東西向 | 可靠地連接內部微服務 | Istio, Linkerd, Consul |
它們可以一起工作嗎?#
關鍵要點#
API Gateways 用於將服務暴露給外部世界(南北向,第 7 層)。
Modified at 2025-12-29 09:35:19