高可用 Web 叢集需將流量分散至多節點。主流兩大架構:
原理:單一 FQDN 對應多筆 A/AAAA 記錄,DNS 伺服器依序回應不同 IP。
優點:
• 零成本、無單一失敗點 (DNS 本身可做叢集)
• 部署簡單、無額外硬體/軟體授權
• 適合跨資料中心地理分散 (Geo-DNS)
缺點:
• 無健康檢查:節點掛掉 DNS 仍解析其 IP,導致用戶端連線失敗 (TTL 過期前)。
• 用戶端/遞迴解析器快取:TTL 過期前流量不會切換。
• Session 不連續:同一用戶可能解析到不同節點,需共享 Session 儲存 (Redis/DB/NFS)。
• 負載不均:輪循平均,不考慮節點效能、連線數、延遲。
適用:無狀態靜態內容、CDN 邊緣節點、容錯要求低、預算極限場景。
| 類型 | 代表產品 | 工作層級 | 核心能力 |
|---|---|---|---|
| 硬體 | F5 BIG-IP, Citrix ADC, A10, Radware | L4/L7 | 高效能 ASIC/FPGA、SSL 卸載、WAF、DDoS 防護、GUI 管理 |
| 軟體 (專用) | NGINX Plus, HAProxy Enterprise, Envoy, Traefik | L7 (HTTP/HTTPS/gRPC) | 豐富路由規則、健康檢查、熔斷、限流、可觀測性、K8s 整合 |
| 雲端原生 | AWS ALB/NLB, GCP Cloud Load Balancing, Azure Front Door/Application Gateway | L4/L7 | 全代管、自動擴縮、跨區域、WAF 整合、成本隨用量 |
| 功能 | RR-DNS | L4 LB | L7 LB |
|---|---|---|---|
| 健康檢查 | 無 | TCP/HTTP 檢查 | 深度 HTTP/HTTP2/gRPC 檢查 |
| Session Affinity | 不可控 | Source IP Hash | Cookie/Header/JWT/一致性雜湊 |
| SSL 卸載 | 無 | 可 (SSL Pass-through) | 完整終結、重新加密、OCSP Stapling |
| 內容路由 | 無 | 無 | Path/Host/Header/Query 參數路由 |
| WAF 整合 | 無 | 無 | ModSecurity/OWASP CRS/自訂規則 |
| 可觀測性 | 無 | 基本計數器 | 完整 Metrics/Logs/Traces (Prometheus/OpenTelemetry) |
| 成本 | 極低 | 高 (硬體) / 中 (軟體授權) | 中~高 (授權/雲端用量) |
用戶 → [Geo-DNS / CDN] → [區域 L7 LB (NGINX/ALB)] → [區域內 L4 LB (HAProxy/Envoy)] → [應用叢集 (K8s/VM)]
/healthz、Graceful Shutdown (SIGTERM 處理)。spring-session / express-session / django-redis-sessions,TTL 同步、高可用。session 表、索引 session_id、定期清理過期。負載平衡非單一工具,而是架構層決策。依業務可用性等級、預算、團隊能力、技術棧綜合選型,並建立完整健康檢查、熔斷、降級、演練機制。