SpringCloud面试题, Spring Cloud 可以选择哪些 API 网关?
SpringCloud面试题, Spring Cloud 可以选择哪些 API 网关?
QA
Step 1
Q:: Spring Cloud 可以选择哪些 API 网关?
A:: Spring Cloud 常用的 API 网关包括 Spring Cloud Gateway 和 Netflix Zuul。Spring Cloud Gateway 是基于 Spring 5.0、Spring Boot 2.0
和 Project Reactor 的 API 网关,提供了更好的路由、过滤器和安全性支持。Netflix Zuul 是一个早期的 API 网关解决方案,虽然功能成熟,但随着 Spring Cloud 生态的发展,Spring Cloud Gateway 更加符合现代化的需求。
Step 2
Q:: Spring Cloud Gateway 与 Netflix Zuul 有什么区别?
A:: Spring Cloud Gateway 基于非阻塞的 WebFlux,而 Zuul 1.x 基于阻塞的 Servlet,因此 Gateway 性能更高。Spring Cloud Gateway 提供了更强大的过滤器机制和集成能力,并支持更加细粒度的路由和安全控制。Zuul 2.
x 虽然也支持非阻塞,但社区支持相对较少,Spring Cloud Gateway 更加主流和现代化。
Step 3
Q:: Spring Cloud Gateway 的核心组件有哪些?
A:: Spring Cloud Gateway 的核心组件包括路由(Route)、断言(Predicate)和过滤器(Filter)
。路由决定请求如何转发,断言用于匹配请求,过滤器则在请求转发前或响应返回后进行处理。用户可以通过配置这些组件来实现复杂的网关逻辑。
Step 4
Q:: 如何在 Spring Cloud Gateway 中实现自定义过滤器?
A:: 在 Spring Cloud Gateway 中,自定义过滤器可以通过实现 GlobalFilter
或 GatewayFilter
接口来实现。GlobalFilter 会作用于所有路由,而 GatewayFilter 仅作用于指定的路由。自定义过滤器可以实现请求或响应的前后处理,如鉴权、日志记录、限流等功能。