梗概
- 负载均衡:做请求分发
- Nginx:可实现反向代理与简单负载均衡
- API 网关:更全面的 API 管理(鉴权、限流、路由、观测等),通常内置或对接负载均衡
API网关与负载均衡的区别
API 网关和负载均衡虽然都处于请求处理的前端,但它们的职责和关注点有本质的不同。
核心区别
-
API 网关: 聚焦于 API 的全生命周期管理,是业务逻辑层面的网关。
- 功能: 请求路由、协议转换(如 HTTP 与 RPC 互转)、身份认证(如 OAuth、API 密钥)、权限控制、请求限流、日志监控、数据格式转换等。
- 角色: 客户端与后端服务之间的“入口管家”,处理复杂的 API 业务逻辑。
-
负载均衡: 核心是将请求流量均匀分配到多个后端服务实例,是网络流量层面的调度器。
- 功能: 避免单节点过载,提升系统可用性和吞吐量。
- 角色: 不关心具体的业务逻辑,只负责分发流量。
总结
| 特性 | API 网关 | 负载均衡 |
|---|---|---|
| 关注点 | API 管理、业务逻辑 | 流量分发、高可用 |
| 协议 | HTTP, RPC, WebSocket 等 | TCP, UDP, HTTP, HTTPS |
| 功能 | 认证、限流、路由、监控、协议转换 | 轮询、最少连接、IP 哈希等分发策略 |
| 层级 | 应用层(L7) | 传输层(L4)或应用层(L7) |
| 关系 | 通常位于负载均衡之后,后端服务之前 | 通常位于最前端,接收所有外部流量 |
在典型的微服务架构中,一个请求的路径通常是:
客户端 -> GSLB -> 负载均衡 -> API 网关 -> 后端服务