SpringCloud面试题, Spring Cloud Gateway 与 Zuul 有什么区别?
SpringCloud面试题, Spring Cloud Gateway 与 Zuul 有什么区别?
QA
Step 1
Q:: Spring Cloud Gateway 与 Zuul 有什么区别?
A:: Spring Cloud Gateway 是 Spring 官方推出的第二代网关框架,作为 Zuul 的替代品。主要区别在于:1. 性能方面,Spring Cloud Gateway 基于 Netty 构建,性能优于 Zuul 1.x 版基于 Servlet 的实现。2. 功能特性方面,Gateway 提供了更丰富的路由匹配和过滤器功能,并且支持更灵活的断路器和限流功能。3.
扩展性方面,Gateway 提供了更容易扩展的 API 以及 Reactor 模式的响应式编程支持。
Step 2
Q:: 为什么从 Zuul 迁移到 Spring Cloud Gateway?
A:: Zuul 1.
x 基于 Servlet,而 Spring Cloud Gateway 基于 Netty,后者具有更高的性能和更丰富的功能支持。同时,Spring Cloud Gateway 是响应式编程模型,符合现代微服务架构的要求,能够更好地处理高并发、低延迟的场景,因此逐渐成为主流选择。
Step 3
Q:: Spring Cloud Gateway 的核心组件有哪些?
A:: Spring Cloud Gateway 的核心组件包括:1. Route(路由):包含路由断言(Predicates)和过滤器(Filters)。2. Predicate:路由断言,用于判断请求是否匹配特定路由。3. Filter:过滤器,用于对请求或响应进行处理,分为全局过滤器和路由过滤器。4. Global Filter:作用于所有路由的全局过滤器。5.
Gateway Filter:特定路由上使用的过滤器。
Step 4
Q:: 如何在 Spring Cloud Gateway 中实现自定义过滤器?
A:: 在 Spring Cloud Gateway 中,可以通过实现 GatewayFilter 或 GlobalFilter 接口来创建自定义过滤器。GatewayFilter 用于特定路由,而 GlobalFilter 用于全局所有路由。你还可以通过注解 @
Component 将过滤器交给 Spring 管理,并通过配置文件或代码进行应用。