1.1 API Gateway 概述

1.1.1 什么是 API Gateway

API Gateway(API 网关)是微服务架构中位于客户端与后端服务集群之间的统一入口层。它负责接收所有外部请求,按照预定义的路由规则将请求分发到对应的微服务实例,并在这一过程中完成认证、限流、协议转换、日志记录等横切关注点。

从部署位置看,API Gateway 处于系统边界,是南北向流量(客户端到服务端)的第一道关卡;从职责看,它剥离了微服务中非业务功能的共性逻辑,使每个微服务可以专注于自身业务领域。

核心定义:API Gateway = 反向代理 + 路由分发 + 横切能力(认证、限流、熔断、日志、协议转换)。
API Gateway 在微服务架构中的位置 移动 App Web 前端 第三方系统 API Gateway 路由 · 认证 · 限流 · 熔断 用户服务 订单服务 支付服务 说明: 所有客户端请求统一经过 API Gateway,由网关完成路由分发后转发至对应的微服务实例。 微服务之间不直接对外暴露,网关成为系统唯一的对外入口。

1.1.2 在微服务中的核心作用

API Gateway 在微服务体系中承担着流量枢纽和安全屏障的双重角色,其核心作用可归纳为以下六个方面:

作用维度 具体职责 典型实现
路由分发 根据请求路径、域名、Header 等条件将请求转发到对应微服务 路径匹配 /user/** → 用户服务
认证授权 统一校验 JWT Token、OAuth2 凭证,拦截非法请求 网关层前置鉴权过滤器
流量控制 限制单个客户端或全局的请求速率,防止服务过载 令牌桶、漏桶算法
熔断降级 当后端服务异常时快速失败或返回降级响应,避免级联故障 断路器模式(Hystrix / Sentinel)
协议转换 将外部 HTTP/HTTPS 请求转换为内部 RPC 或 gRPC 协议 HTTP → Dubbo / gRPC 桥接
观测与治理 集中记录请求日志、调用链追踪、监控指标 Prometheus + Grafana + 链路追踪
架构收益:引入 API Gateway 后,微服务团队可以独立迭代业务逻辑,无需关心认证、限流等基础设施;运维团队只需在网关层统一配置安全策略和流量规则,大幅降低治理成本。

1.1.3 与传统网关的区别

传统网关(如 Nginx、Apache HTTP Server)主要解决反向代理和负载均衡问题,而微服务场景下的 API Gateway 在能力维度上有了质的扩展。下表从多个关键维度进行对比:

对比维度 传统网关(Nginx / Apache) 微服务 API Gateway
核心定位 反向代理 + 静态资源服务 + 负载均衡 统一入口 + 路由分发 + 横切能力聚合
路由规则 基于静态配置文件(location 块) 动态路由,支持服务发现、灰度发布、权重调整
认证鉴权 需借助第三方模块(如 lua-nginx-module) 内置过滤器链,原生支持 JWT / OAuth2 / 自定义鉴权
限流熔断 需额外配置或开发,能力有限 内置限流、熔断、降级策略,与注册中心联动
协议支持 HTTP / HTTPS / TCP 代理 HTTP / gRPC / Dubbo / WebSocket 等多协议转换
扩展方式 模块加载(C 语言)或 Lua 脚本 插件化架构(Java Filter / Go Middleware / Lua Plugin)
配置管理 静态文件 + reload 生效 动态配置中心(Nacos / etcd / Consul),热更新
可观测性 基础访问日志 + 简单状态页 全链路追踪 + 指标聚合 + 分布式日志 + 健康检查
传统网关 vs API Gateway 能力对比 传统网关 反向代理 负载均衡 静态路由 基础日志 API Gateway 动态路由 认证鉴权 限流熔断 协议转换 灰度发布 链路追踪 动态配置热更新 插件化扩展 传统网关聚焦于流量转发,API Gateway 在此基础上叠加了微服务治理所需的全部横切能力,是微服务架构的“智能大门”。
选型提示:如果系统只有 2-3 个单体服务且无复杂治理需求,直接使用 Nginx 反向代理即可,引入 API Gateway 反而增加架构复杂度。API Gateway 的价值在微服务数量超过 5 个、需要统一认证限流和灰度发布时才会充分体现。

1.1.4 主流 API Gateway 产品概览

当前业界主流的 API Gateway 产品分为商业版和开源版两大阵营,下表列出代表性产品及其关键特性:

产品名称 类型 开发语言 核心特性 适用场景
Kong 开源 Lua / OpenResty 插件生态丰富、高性能、支持 DB-less 模式 云原生、Kubernetes 环境
Spring Cloud Gateway 开源 Java (Reactor) 与 Spring 生态无缝集成、响应式非阻塞 Java / Spring Boot 技术栈
APISIX 开源 Lua / Go 动态路由、热更新、多语言插件支持 高性能、大规模微服务集群
Traefik 开源 Go 自动服务发现、自动 HTTPS、云原生友好 Kubernetes / Docker 容器化部署
Amazon API Gateway 商业 托管服务 全托管、自动扩缩容、与 AWS 服务深度集成 AWS 云原生应用
阿里云 API 网关 商业 托管服务 国内合规、高可用、与阿里云生态集成 阿里云部署的企业级应用