作者:API7 技术团队
最后更新:2026 年 7 月
这不是两个同类产品的对决:Apache APISIX 是独立部署、语言无关的 API 网关层;Spring Cloud Gateway 是嵌入 Spring Boot 应用的 Java 网关库。本文对比两种形态在配置、扩展、协议、运维上的差异,帮 Java 团队想清楚:网关该放在应用里,还是放在应用前。
形态不同,答案取决于团队。Spring Cloud Gateway 是 Spring 官方的嵌入式网关库(现由 Broadcom 治下 Spring 团队维护):对纯 Spring 团队零新增基建、代码即路由、与 Spring Security 深度集成。Apache APISIX 是独立的网关基础设施层:语言无关、etcd 集中式毫秒级动态配置、100+ 插件与 Dashboard、协议覆盖到 gRPC 转码/MQTT/Dubbo。多语言、多团队、要集中治理,选 APISIX;小规模纯 Spring 栈,SCG 足够。
核心差异是形态:独立网关层(语言无关、集中配置、插件生态)vs 嵌入式 Java 库(零新增基建、代码即路由、Spring 生态集成)。
| 维度 | Apache APISIX | Spring Cloud Gateway |
|---|---|---|
| 定位 | 独立部署的 API 网关层(语言无关) | 嵌入 Spring Boot 应用的 Java 网关库 |
| 运行形态 | NGINX/OpenResty + etcd,独立进程 | JVM 内运行:WebFlux/Netty 或 MVC/Servlet(4.1.0 起) |
| 动态配置 | ✓ etcd 集中下发,全节点 watch 毫秒级生效 | 每实例 Actuator 增删路由 + refresh;无集中配置中心 |
| 扩展生态 | ✓ 100+ 插件(Lua、Go、Java、Python、Wasm) | 十余种内置断言、30+ 过滤器;扩展写 Java 代码 |
| 协议覆盖 | HTTP/1.1、HTTP/2、HTTP/3(实验性)、gRPC(含转码)、WebSocket、TCP/UDP、MQTT、Dubbo | HTTP(S)、WebSocket、gRPC(HTTP/2 需 TLS) |
| 管理界面 | ✓ 内置 Dashboard | 开源版无(商业 K8s 版提供 Operator/CRD) |
| 维护方 | Apache 软件基金会(厂商中立) | Spring 团队 / Broadcom(Tanzu Spring 商业订阅) |
Apache APISIX 是独立部署、语言无关的开源 API 网关(ASF 顶级项目),基于 NGINX/OpenResty + etcd,提供 100+ 插件、集中式动态配置与 Dashboard。
Apache APISIX 是独立部署、语言无关的开源 API 网关层,基于 NGINX/OpenResty 与 etcd,是 Apache 软件基金会顶级项目。100+ 插件覆盖认证、限流、转换、可观测与 AI,配置经 etcd 集中下发、毫秒级生效,并内置 Dashboard。
形态
独立网关层(语言无关)
内核
NGINX/OpenResty(LuaJIT)+ etcd
最适合
统一入口与集中治理
Spring Cloud Gateway 是 Spring 官方的网关库(Apache-2.0),嵌入 Spring Boot 应用运行,提供断言+过滤器路由模型,深度集成 Spring 生态;WebFlux 与 MVC 双形态,由 Broadcom 治下的 Spring 团队维护。
Spring Cloud Gateway 是 Spring 官方的网关项目(Apache-2.0),定位是「构建在 Spring 之上的 API 网关库」,以依赖嵌入 Spring Boot 应用。提供断言 + 过滤器的路由模型,深度集成 Spring Security、Resilience4j 与 Micrometer;现由 Broadcom 治下的 Spring 团队维护,是 Zuul 移除后 Spring 栈的官方接班路径。
形态
嵌入式 Java 网关库
运行时
JVM(WebFlux/Netty 或 MVC/Servlet)
最适合
纯 Spring 技术栈团队
APISIX 是应用前的独立层:etcd 集中存储配置、全节点毫秒级同步。SCG 是应用的一部分:路由随应用部署,动态变更靠每实例的 Actuator API。
Apache APISIX 部署为独立的网关集群,配置集中存储在 etcd,全部节点 通过 watch 机制毫秒级同步 —— 路由、插件、上游的变更一次写入、全网 生效,网关的伸缩与应用发布互不耦合,任何语言的后端都在它之后统一 接入。
Spring Cloud Gateway 以依赖形式嵌入 Spring Boot 应用:WebFlux 变体 运行在 Netty 上(不支持传统 Servlet 容器与 WAR),4.1.0 起的 MVC 变体可跑 Tomcat/Jetty。路由用 application.yml 或 Java DSL 定义; 运行时可经 Actuator 端点增删路由并调用 refresh 生效 —— 但这是 按实例操作的 API,开源版没有集中式配置中心,官方文档也建议将该 端点设为只读。这不是缺陷,而是「库」形态的自然边界:网关与应用 同生共死、同仓库同流水线,治理边界也随之落在单个应用上。
APISIX 强在集中式动态配置、插件生态、协议宽度与管理界面;SCG 强在 Spring 生态零成本集成与代码即路由。性能上 SCG 官方无基准数字,本文不做编造对比。
| 能力 | Apache APISIX | Spring Cloud Gateway |
|---|---|---|
| 定位与形态 | 独立 API 网关层:任何语言的后端都经它统一接入 | 官方定位为「构建在 Spring 之上的网关库」,作为依赖嵌入 Spring Boot 应用 |
| 运行时 | NGINX/OpenResty(LuaJIT)独立进程 + etcd 配置中心 | JVM:WebFlux 变体要求 Netty(不支持 WAR/Servlet 容器);MVC 变体(4.1.0+)可跑 Tomcat/Jetty |
| 配置与生效 | etcd 集中存储,全部网关节点 watch 同步,毫秒级生效 | application.yml / Java DSL / Actuator API;运行时增删路由后调 /actuator/gateway/refresh 生效 —— 按实例操作,官方建议端点只读 |
| 路由模型 | Route + Upstream + 插件编排;Admin API 与声明式配置 | Route = 断言(Predicate)+ 过滤器(Filter);十余种内置断言、30+ 过滤器(以 5.0.x 文档为准) |
| 限流与熔断 | limit-req/limit-count/limit-conn 等插件;熔断插件 —— 开箱即用 | RequestRateLimiter(令牌桶,需接 Redis);熔断经 Spring Cloud CircuitBreaker + Resilience4j |
| 认证与安全 | JWT、OAuth2/OIDC、key-auth、mTLS、HMAC 等插件在开源核心 | 依托 Spring Security 生态;TokenRelay 转发 OAuth2 令牌 |
| 协议 | HTTP/1.1、HTTP/2、HTTP/3(实验性)、gRPC(含转码)、WebSocket、TCP/UDP、MQTT、Dubbo | HTTP(S)、WebSocket、gRPC/HTTP2(要求 TLS;另有 JSON 转 gRPC 过滤器);MQTT/Dubbo 无文档支持 |
| 可观测性 | Prometheus、OpenTelemetry、SkyWalking、Datadog 插件 | Micrometer 指标(spring.cloud.gateway.requests)经 Actuator 暴露 |
| 管理与治理 | 内置 Dashboard;企业版提供控制台 RBAC、审计、多集群 | 开源版无管理界面;商业版 Spring Cloud Gateway for Kubernetes 提供 Operator/CRD 与 SSO |
| 服务发现 | Kubernetes、Consul、Nacos、Eureka、DNS | Spring Cloud LoadBalancer + DiscoveryClient(lb:// URI) |
| 性能口径 | 官方自报单核约 18,000 QPS、0.2 毫秒延迟(厂商数字,仅供参考) | 官方未发布性能基准;以 AOT/GraalVM 原生编译优化启动与占用 |
| 维护与商业化 | ASF 顶级项目(Apache-2.0);商业版 API7 企业版 | Spring 团队/Broadcom(Apache-2.0);Tanzu Spring 订阅,企业补丁走 Broadcom 门户(2024-12 起) |
多语言后端、集中治理、插件生态选 APISIX;纯 Spring 小规模团队、零新增基建、代码即路由选 SCG。两者也常分层共存:APISIX 做统一入口,SCG 做个别应用的内部边缘。
一句话总结: 把网关当基础设施,选 Apache APISIX —— 语言无关、etcd 集中式 动态配置、100+ 插件与 Dashboard,Java 团队还能用 apisix-java-plugin-runner 写插件;把网关当应用的一部分、且全员 Spring,Spring Cloud Gateway 是顺手的答案。需要控制台 RBAC、 审计与合规认证的生产级发行版,可了解 API7 企业版。
微信咨询
获取方案