微服务是大型架构核心,下面我详解Spring Cloud Gateway千万并发@mikechen
异步非阻塞
异步非阻塞,这是 Spring Cloud Gateway 实现高并发的基石。
“Spring Cloud Gateway ”, 基于 Spring WebFlux 和 Project Reactor 构建,使用非阻塞 I/O 模型。

传统的 Servlet 容器,使用线程池为每个请求分配一个线程(阻塞 I/O)。
在高并发下线程数量暴涨,导致频繁的上下文切换和资源消耗。
“Spring Cloud Gateway ” 的工作线程(Netty Event Loop Group)数量极少。
主要负责数据的读取和写入,而不会在 I/O 操作上等待(不阻塞)。
极大地提高了 CPU 的利用率,用少量线程即可处理成千上万的并发连接,避免了线程爆炸问题,是实现高吞吐量的关键。
分布式扩容
单机无论如何调都有限,千万并发必须水平扩容、负载均衡、以及保持网关“尽量无状态”。

网关设计为无状态:避免会话/认证信息写在本地内存,使用 JWT、Redis 或外部会话中心做状态化存储。
使用 L4(LVS/TCP)+ L7(Kubernetes Ingress/外部 LB)组合做多级负载均衡。
上游流量先由高性能 L4 分配,再由 L7 精细路由。
部署在容器环境(Kubernetes)时,利用 HPA(基于 CPU/请求延迟/自定义指标)做自动扩缩容。
限流保护
当流量暴涨时,必须有限流保护机制防止系统被压垮。
SCG 内置了 RedisRateLimiter 实现分布式限流。

spring:
cloud:
gateway:
routes:
- id: api_route
uri: http://service
predicates:
- Path=/api/**
filters:
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 1000 # 每秒生成的令牌数
redis-rate-limiter.burstCapacity: 2000 # 最大突发请求数
熔断设计
当下游服务异常或响应过慢时,SCG 提供了熔断保护机制 —— CircuitBreaker。
防止因下游雪崩导致全链路阻塞。

spring:
cloud:
gateway:
routes:
- id: user_route
uri: http://user-service
filters:
- name: CircuitBreaker
args:
name: userCircuitBreaker
fallbackUri: forward:/fallback
当用户服务超时、异常时自动熔断;
立即返回降级结果;
网关不被卡死;
系统整体保持稳定。
关于mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。