微服务网关演化

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 开销。

相关推荐
贺国亚22 分钟前
Multi-Agent与Multi-Task编排架构
架构
张忠琳2 小时前
【SR-IOV cni】(Part 4) SR-IOV Network Device Plugin 3.11.0 — 超深度架构分析
网络·云原生·kubernetes·cni·sriov
Qiuner3 小时前
Pico 重塑Agent时代人与数据交互方式
windows·docker·ai·架构
心之伊始6 小时前
MySQL EXPLAIN 执行计划实战:从 type、Extra 到慢 SQL 定位与优化
java·架构·源码分析·csdn
国科安芯6 小时前
国科安芯推出商业航天级抗辐照全双工 RS485/422 收发器 ASC491S2Y
网络·分布式·单片机·架构·安全性测试
一切皆是因缘际会6 小时前
AI智能新时代
数据结构·人工智能·ai·架构
微三云、小叶8 小时前
新型消费积分商业模式拆解:盈利架构、衰减铸造模型与项目风控要点
架构·软件开发·商业模式·本地生活·商业思维·私域运营
SilentSamsara8 小时前
Python 微服务全链路:gRPC + 链路追踪 + 服务网格接入
开发语言·分布式·python·微服务·架构
candyTong8 小时前
Claude Code 的工具延迟加载机制
架构
葫芦和十三8 小时前
执行拓扑|Agent 不只是会什么,还要怎么跑
架构·agent·ai编程