API 网关是什么
API 网关在客户端与服务之间提供统一入口,集中处理路由、鉴权、限流、TLS 终止、日志与协议转换。它把横切关注点从各服务收敛到一层,减少了重复开发;代价是这一层处在所有请求的关键路径上,可用性与性能要求高于普通业务服务。
边界怎么划
网关适合承载与业务无关的通用能力,例如身份校验、配额限制与访问日志。一旦开始在网关里写业务分支判断、字段拼装与多服务编排,它就变成了难以测试的分布式脚本宿主,变更风险与排障成本都会急剧上升。细粒度授权、业务校验与数据组装应下沉到服务侧。
核心能力
| 能力 | 说明 | 注意 |
|---|---|---|
| 路由 | 按路径或域名转发到后端 | 规则变更需版本化与审计 |
| 鉴权 | 令牌校验、接口密钥验证 | 细粒度授权尽量下沉业务侧 |
| 限流 | 按消费者或路径设置配额 | 多实例需共享配额状态 |
| 观测 | 访问日志、指标、链路追踪透传 | 关联标识要全程透传 |
基本信息
| 部署形态 | 多实例加健康检查,避免单点 |
|---|---|
| 配置管理 | 路由规则版本化、可审计、可灰度 |
| 降级策略 | 下游不可用时快速返回明确错误而非长时间等待 |
| 容量要求 | 按核心组件标准做压测与容量规划 |
典型使用场景
- 统一域名入口:对外收敛成单一地址,便于治理
- 集中鉴权:在入口完成身份验证,服务只处理授权细节
- 配额与限流:按调用方限制单位时间请求量
- 协议转换:对外 REST、对内 gRPC 或内部协议
- 灰度与版本路由:按用户或比例把流量导向新版本
网关处在可用性关键路径上:容量、故障隔离与降级策略要按核心组件标准设计,否则一次网关故障会让全部对外接口同时不可用。