Load Balancer vs API Gateway(能否相互替代)
发布: (2025年12月17日 GMT+8 17:45)
3 min read
原文: Dev.to
Source: Dev.to
在现代架构中,负载均衡器和 API 网关都是关键组件,但它们解决的是不同的问题。由于它们有时会出现在同一请求路径中,容易被混淆,甚至被视为可以互相替代的。
Load Balancer Types
| Load Balancer | OSI Layer | What It Understands |
|---|---|---|
| L4 Load Balancer | Layer 4(传输层) | TCP/UDP、IP、端口 |
| L7 Load Balancer | Layer 7(应用层) | HTTP/HTTPS、请求头、路径 |
关键点: 负载均衡器主要关注流量分发,而不是 API 逻辑。
API Gateway
| Component | OSI Layer |
|---|---|
| API Gateway | Layer 7(应用层) |
API 网关深刻理解 HTTP 语义,例如:
- 请求头
- JSON 负载
- 授权令牌
- 请求路径
- API 版本
Key Differences at a Glance
| Aspect | Load Balancer | API Gateway |
|---|---|---|
| Primary Purpose | 分发流量 | 管理 API |
| OSI Layer | L4 或 L7 | 仅 L7 |
| Authentication | ❌(非常有限) | ✅ 内置 |
| Rate Limiting | ❌ | ✅ |
| API Versioning | ❌ | ✅ |
| Request Transformation | ❌ | ✅ |
| Protocol Awareness | TCP/HTTP | HTTP/REST/GraphQL |
| Backend Awareness | 服务器 | 微服务 & API |
Why One Can’t Replace the Other
Load Balancer
- 类比: 像交通警察 🚦 决定哪个服务器来处理请求。
- 第 4 层职责: IP 地址、端口号、TCP/UDP 连接。
- 第 7 层职责(如适用):
- 在服务器之间分配流量
- 基于路径的路由(例如
/api → server A) - 粘性会话(将同一用户发送到同一服务器)
- 健康检查
- SSL 终止
注意: 粘性会话仅表示“再次将该用户发送到同一服务器”。它 不 涉及身份检查、令牌验证或权限强制。
负载均衡器的设计目标是快速、轻量且简单。加入繁重的安全逻辑会降低性能并增加扩展难度。
API Gateway
- 类比: 像大楼入口的保安 🛂 控制对 API 的访问。
- 核心职责:
- 认证(JWT、OAuth、API 密钥)
- 授权(用户可以做什么)
- 限流与节流
- API 版本管理(v1、v2、…)
- 请求/响应转换
- 日志与监控
API 网关关注 谁 在调用、调用频率 以及 他们被允许访问什么。认证涉及令牌校验、过期检查、角色/权限检查,有时还需要调用外部身份存储——远远超出仅读取 HTTP 头部的范围。
Summary
- 负载均衡器: “这个请求应该去哪里?”——侧重路由和基本健康检查。
- API 网关: “谁在调用以及他们能做什么?”——提供安全、流量整形以及 API 专属功能。
由于它们在职责层面上不同,即使两者都在第 7 层工作,负载均衡器也无法完全取代 API 网关。