SpringCloud 面试题, 什么是微服务网关?为什么需要服务网关?
SpringCloud 面试题, 什么是微服务网关?为什么需要服务网关?
QA
Step 1
Q:: 什么是微服务网关?
A:: 微服务网关(API Gateway)是一种服务,它位于客户端和微服务之间,用于请求路由、组合、过滤等。微服务网关是一个进入微服务系统的唯一入口,所有客户端的请求都会先经过网关,然后由网关路由到相应的服务。网关还可以处理认证授权、负载均衡、缓存、日志记录、监控等功能,从而简化客户端的调用逻辑和提升系统的安全性、稳定性。
Step 2
Q:: 为什么需要服务网关?
A:: 服务网关能够提供统一的入口,简化客户端与微服务的交互,并能够处理跨多个服务的请求和响应。它还能为系统提供额外的安全性,通过认证授权机制来控制对微服务的访问。此外,网关可以实现负载均衡、限流、熔断等功能,有助于提高系统的可用性和稳定性。同时,网关可以整合不同微服务的响应,提供给客户端一个统一的结果,减少客户端对微服务架构的了解程度。
Step 3
Q:: Spring Cloud Gateway 与 Zuul 有什么区别?
A:: Spring Cloud Gateway 是 Spring 官方提供的第二代网关框架,基于 Spring 5、Spring Boot 2
和 Project Reactor 构建,支持响应式编程模型,性能相较于第一代的 Zuul 提高了很多。Zuul 是 Netflix 开源的网关,虽然功能强大,但性能相对较低,且不支持响应式编程。Spring Cloud Gateway 还提供了更丰富的路由匹配功能和更强的扩展性。
Step 4
Q:: 服务网关的核心功能有哪些?
A:: 服务网关的核心功能包括:1. 请求路由:将客户端的请求转发到相应的微服务;2. 负载均衡:将请求分发到多个实例,保证高可用性;3. 认证授权:验证请求的合法性并控制访问权限;4. 流量控制:限流、熔断、降级等机制来保护后端服务;5. 日志和监控:记录请求日志并监控系统性能;6.
响应聚合:组合多个服务的响应,减少客户端的请求次数。
Step 5
Q:: 如何在 Spring Cloud Gateway 中配置自定义过滤器?
A:: 在 Spring Cloud Gateway 中,可以通过实现 GatewayFilter 接口或继承 AbstractGatewayFilterFactory 类来创建自定义过滤器。过滤器可以在全局或特定路由级别应用,通常用于在请求进入网关和响应返回客户端之间执行特定的逻辑。例如,记录日志、添加认证信息、修改请求头等。配置好自定义过滤器后,可以在 application.
yml 或 Java 配置类中将其应用到指定的路由。