1.静态网关
2.动态网关
3.云原生网关
静态网关
以Nginx为代表,功能强大,能力突出,
痛点:
改配置要重启,不支持动态
动态网关
以gateway 为代表,功能全面,改配置无需重启。且可以做负载,灰度,限流熔断降级。
痛点:
1. I/O 模型限制
基于servlet 或netty 的阻塞/半阻塞,在高并发下线程上下文切换开销大。
2. GC压力大
JVM的垃圾回收机制在处理大量HTTP请求和响应,容易引发STW 停顿,导致网关层出现不可控的延迟毛刺。
3. 依赖配置中心
如果配置中心(nacos/eureka)宕机,会导致回退到错误的路由状态。
4. 协议转换弱
天然支持HTTP/REST,但对于GRPC,Dubbo,webSocket 等协议支持非常笨重,通常需要写复杂的过滤器,且性能损耗极大。
云原生
以 Apache APISIX 为代表 ,支持动态配置、热更新,不用重启网关,性能极强。用它和gateway做以下对比
一、底层基座完全不一样
Apache APISIX
底层是 Nginx + LuaJIT + Go
Nginx 是工业级高性能网络 IO 模型,事件驱动、epoll 多路复用
LuaJIT 即时编译,脚本跑起来接近原生 C 性能
网络层、连接调度、内核转发都是Nginx 内核级能力
Spring Cloud Gateway
底层是 Java + Netty
跑在 JVM 之上
所有请求都要经过 JVM 堆、GC、线程调度、对象创建销毁
先天就比 Nginx 栈重一层
二、网络 IO 模型:架构天生降维打击
APISIX
多进程 + 事件驱动 + 非阻塞 IO
基于 Nginx 经典 Master-Worker 多进程模型
每个 Worker 单线程、全异步非阻塞
一个线程可以扛几万连接,不靠堆线程扛流量
无线程上下文切换开销
Spring Cloud Gateway
Netty 线程池 + 异步但仍受 JVM 约束
Netty 也是事件驱动,但跑在 JVM 里
高并发下:线程池队列膨胀、任务调度、锁竞争、JVM 调度开销明显
流量一大,线程、队列、GC 压力全上来
关键区别:
APISIX 是内核级 IO 调度,SCG 是应用层 JVM 调度。
三、运行时与内存开销
APISIX
轻量,内存占用极低
无垃圾回收困扰
路由、插件、限流、鉴权全在 Worker 内闭环,无跨进程、无对象频繁创建
Spring Cloud Gateway
每一个请求都会创建大量临时对象
高并发下 Young GC、Full GC 频繁
GC 一旦卡顿,瞬间延迟飙升、吞吐下降
JVM 本身就要占用不小堆内存
四、路由与配置更新机制
APISIX
全动态热更新
路由、插件、上游配置变更毫秒级生效,不重启、不重载
基于 etcd 增量推送,无全局刷新开销
Spring Cloud Gateway
传统基于配置文件 / 配置中心刷新
很多场景需要重启或完整刷新上下文
刷新时存在抖动、短暂不可用,且刷新开销大
五、协议与转发效率
APISIX
天然优化:
四层 / 七层转发都是 Nginx 原生
连接复用、长连接、缓冲区零拷贝做得极致
转发几乎是内核态快速转发
SCG 所有流量都要经过:
网卡 → 内核 → JVM → Netty → 业务链路 → 再回内核
多了一层 JVM 应用层中转,天生延迟更高。
六、并发能力直观对比
吞吐:APISIX 比 SCG 高 3~5 倍
延迟:高并发下 APISIX 延迟稳定,SCG 随流量上涨明显拉高
资源占用:同等流量下,APISIX CPU / 内存只有 SCG 的 1/3 甚至更低
SCG的架构图

APISIX的架构图

对比
Apache APISIX 与 Spring Cloud Gateway 核心对比表
| 对比项 | Apache APISIX | Spring Cloud Gateway |
|---|---|---|
| 底层基座 | Nginx + LuaJIT + Go | JVM + Netty + Spring |
| 并发模型 | 多进程单线程事件驱动 | Netty 线程池 + JVM 调度 |
| GC 影响 | 无 GC,延迟超稳定 | 高并发 GC 频繁,抖动大 |
| 资源占用 | 低 CPU、低内存 | 同等流量内存 CPU 高 2~3 倍 |
| 配置更新 | etcd 热更新,毫秒无重启 | 需刷新上下文 / 甚至重启 |
| 多语言适配 | 天然兼容 Java/Go/C | 也兼容,但性能拖后腿 |
| 适用场景 | 云原生入口、高并发网关 | Java 内网微服务、小流量场景 |
总结
APISIX 是站在 Nginx 高性能内核上做网关;
Spring Cloud Gateway 是在 JVM 虚拟机里用 Java 应用做网关。
一个贴近内核、轻量无 GC;
一个套 JVM 重容器、天生带调度和 GC 开销。