1. API 网关概述:定义、核心价值与架构位置
API 网关是微服务架构中位于客户端与后端服务集群之间的统一入口层,负责处理所有进入系统的 API 请求。它封装了内部服务的复杂拓扑,对外提供单一、稳定的访问端点,同时集中处理鉴权、限流、路由、协议转换等横切关注点。
一句话定义:API 网关是微服务边界的“前门守卫”与“流量调度员”,所有外部请求必须经过它才能到达后端服务。
1.1 核心价值
| 价值维度 | 说明 | 典型场景 |
|---|---|---|
| 统一入口 | 对外暴露单一域名/端口,隐藏内部服务拆分细节 | 移动端、Web 端、第三方合作方共用同一网关 |
| 安全隔离 | 集中执行鉴权、IP 白名单、防 SQL 注入、防重放攻击 | JWT 校验、OAuth2 令牌验证、请求签名校验 |
| 流量管控 | 限流、熔断、降级、灰度发布,保护后端服务不被突发流量冲垮 | 秒杀场景限流、A/B 测试流量分发 |
| 协议转换 | 将外部 HTTP/HTTPS 请求转换为内部 gRPC、Thrift 或私有协议 | 移动端 HTTP 请求 → 后端 gRPC 服务 |
| 观测与治理 | 统一记录请求日志、链路追踪、监控指标,便于故障排查 | 全量请求日志、慢调用告警、调用链追踪 |
1.2 在微服务架构中的位置与作用
在微服务架构中,API 网关位于客户端与内部服务网格之间,是南北向流量的唯一入口。它不处理业务逻辑,而是作为反向代理将请求转发到对应的微服务实例。
1.3 网关的核心职责分解
API 网关并非简单的反向代理,它承担了以下六大核心职责,这些职责构成了网关的“边界能力”:
- 请求路由:根据请求路径、域名、Header 等条件,将请求转发到对应的微服务实例。
- 身份认证与鉴权:验证请求携带的 Token、API Key 或证书,确认调用方身份和权限。
- 限流与熔断:按用户、IP、接口等维度限制请求速率,防止服务过载。
- 协议转换:将外部 HTTP/1.1 请求转换为内部 gRPC 或 HTTP/2 请求,反之亦然。
- 请求/响应增强:注入公共 Header、统一错误格式、添加 CORS 头、缓存静态响应。
- 观测与审计:记录请求日志、采集监控指标、生成调用链追踪数据。
实践建议:在 Go 生态中,常用的 API 网关实现包括 Kong(基于 OpenResty)、Tyk(Go 实现)、Traefik(Go 实现)以及自研网关。本课程后续将重点讲解如何基于 Go 自研轻量级网关,聚焦鉴权与请求转发边界配置。
1.4 网关 vs 反向代理 vs 负载均衡
| 组件 | 主要职责 | 是否处理业务逻辑 | 典型代表 |
|---|---|---|---|
| API 网关 | 鉴权、限流、路由、协议转换、日志 | 否(只处理横切关注点) | Kong, Tyk, Traefik, 自研网关 |
| 反向代理 | 请求转发、SSL 终止、静态资源缓存 | 否 | Nginx, HAProxy, Caddy |
| 负载均衡 | 流量分发、健康检查、会话保持 | 否 | Nginx, HAProxy, LVS |
在实际部署中,API 网关通常内置反向代理和负载均衡能力,但它的价值远不止于此——它提供了业务层面的安全策略和治理能力,是微服务架构中不可或缺的边界组件。
1.5 网关的部署模式
根据架构规模和团队能力,API 网关通常有以下三种部署模式:
- 单网关模式:所有流量经过一个网关实例,适合中小型项目,运维简单但存在单点风险。
- 多网关集群模式:多个网关实例组成集群,前端通过负载均衡器分发流量,具备高可用能力。
- 分层网关模式:将网关拆分为入口网关(处理 TLS 终止、域名路由)和业务网关(处理鉴权、限流、路由),适合超大规模微服务架构。
注意:网关层是系统的关键瓶颈点。在 Go 中实现网关时,必须关注并发性能、连接池管理、超时控制和优雅关闭。本课程后续章节将深入这些技术细节。
1.6 本章小结
API 网关是微服务架构的边界守卫者,它统一了外部访问入口,集中处理鉴权、限流、路由等横切关注点,让后端服务专注于业务逻辑。理解网关的定义、核心价值和架构位置,是后续学习鉴权策略与请求转发边界配置的基础。