Skip to content

Spring Cloud 可以选择哪些 API 网关? ​

  • 标签:Spring Cloud、服务网关、后端、微服务

🏛 业务架构师 ​

Spring Cloud 体系可选的 API 网关及我的选型观点(2026):

  1. Spring Cloud Gateway(默认选择):Spring 官方,基于 WebFlux/Netty 响应式,性能好;**断言(Predicate)+ 过滤器(Filter)**模型表达力强,无缝集成 Nacos/LoadBalancer/Sentinel;生态与 Spring Cloud 一体——纯 Java 团队的首选;

  2. Zuul 1.x / 2.x(退役):Netflix 系。1.x 同步阻塞 servlet 模型性能差,2.x 虽异步但开源不完整、社区不接纳——历史项目才会遇到;

  3. Nginx + OpenResty/Lua:工业级性能标杆(C 实现),但路由逻辑写 Lua,与 Java 团队栈脱节;常见定位:最前层静态资源/负载均衡,网关职能给应用层网关——Nginx + Gateway 分层组合是最普遍架构;

  4. Kong:基于 OpenResty 的开源网关,插件生态丰富(认证、限流、监控开箱即用),多语言/中立平台团队的选择,管理界面友好;

  5. APISIX:国产开源(Apache 顶级项目),基于 Nginx/etcd,动态路由热更新、插件丰富、性能优异——国内技术栈中上升很快的选择,有控制台和运营生态;

  6. Traefik / K8s Ingress:云原生入口,K8s 环境的天然选项,配置自动发现。

我的选型决策树:

  • Spring Cloud 全家桶团队 → Gateway(生态一致、Java 可控);
  • 平台部门建设"公司级网关"、多语言支持 → APISIX/Kong;
  • K8s 原生、需求简单 → Ingress/Ingress Controller。

一句话:网关选型首要变量是"谁维护、什么栈"——网关是长期运营组件,团队掌控力比性能参数重要。

🏗 系统架构师 ​

清单与定位:

  • Spring Cloud Gateway:Java 栈首选,Netty Reactive,与 Nacos/Sentinel/Security 深度集成,Filter 用 Java 写(团队技能复用);新版提供 MVC 变体(Servlet 栈更亲和);
  • APISIX:Nginx 加 etcd 加 Lua,国内活跃,动态路由与插件热更新、控制台完善、单核万级 RPS;插件支持多语言(含 Wasm);
  • Kong:OpenResty 老牌,插件生态最大,企业版强;
  • Higress:阿里开源,Envoy 底座,容器亲和,插件热更新,与 Nacos 体系配套好;
  • Traefik:K8s Ingress 场景轻量好用;
  • Zuul 1/2:退役选项,新项目不考虑。

选型维度:团队语言栈(Java 团队 SCG 改造效率高;平台团队运营选 APISIX/Higress 控制台)、动态性需求(配置热更还是发布生效)、K8s 生态融合(CRD 与 Gateway API 标准)、控制台与运营能力(对外 API 商业化需要门户计费)。性能差异在万级 RPS 内通常不是决定项——瓶颈往往在下游。

💻 全栈开发专家 ​

可选清单与选型:

  • Spring Cloud Gateway:Spring 官方,WebFlux + Netty,Java 团队自定义 Filter 顺手,与 Nacos/Sentinel 生态融合好——Java 团队默认
  • Kong:Nginx + Lua/OpenResty,插件生态丰富;二开要 Lua 心智
  • APISIX:Apache 顶级项目,Nginx + etcd,动态配置(改路由不 reload)、插件热更新、控制台本土化好,国内采用快
  • Higress:阿里开源,Envoy 底座,云原生 + AI 网关(大模型代理场景近年很火)
  • Nginx/OpenResty:最经典也最费人力自建
  • Traefik / Ingress-nginx:K8s Ingress 控制器形态
  • Zuul 1:Servlet 阻塞模型,已淘汰
  • Envoy / Istio IngressGateway:Mesh 体系入口

选型三问:团队技术栈(Java 团队用 SCG 成本最低;平台团队用 APISIX/Kong 插件体系)、变更频率(路由高频变更选动态配置方案,Nginx reload 时代过去了)、生态整合(Spring Cloud 全家桶选 SCG,K8s 原生看 Ingress/Higress)。

性能档位:Nginx/Envoy 系(C/Lua)优于 SCG(Java),但网关层很少成为瓶颈,可维护性权重更高。