Spring Cloud Gateway 和 Zuul 都是微服务架构中常用的 API 网关,但它们在底层架构、性能、编程模型以及在 Spring 家族中的地位有着本质的区别。 简单来说:Spring Cloud Gateway 是 Spring 官方推出的下一代网关,专门用来替代老旧的 Zuul 1.x。 以下是它们的核心区别: 1. 底层架构与 I/O 模型(最大区别) Zuul 1.x (Spring Cloud Netflix Zuul): 基于老旧的 Servlet 2.5 API 构建,运行在传统的 Servlet 容器(如 Tomcat)中。 使用的是阻塞式 I/O (Blocking I/O) 和多线程模型(一个请求分配一个线程)。当后端服务响应慢时,网关的线程池很容易被耗尽,导致网关整体雪崩。 Spring Cloud Gateway (SCG): 基于 Spring 5、Project Reactor 和 Spring Boot 2.x/3.x 构建。 底层默认使用 Netty 作为服务器,采用非阻塞式 I/O (Non-blocking I/O) 和响应式编...