SpringCloud面试题, 说一下 Spring Cloud Gateway 的核心概念?
SpringCloud面试题, 说一下 Spring Cloud Gateway 的核心概念?
QA
Step 1
Q:: 什么是Spring Cloud Gateway?
A:: Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、Spring Boot 2.0
和 Project Reactor 等技术开发的一个全新的 API 网关。它旨在替代 Zuul 作为微服务架构中的网关解决方案。它不仅提供了路由转发的功能,还具有反向代理、负载均衡、熔断限流等功能,是现代微服务架构中的重要组件之一。
Step 2
Q:: Spring Cloud Gateway 的核心概念有哪些?
A:: Spring Cloud Gateway 的核心概念包括路由(Route)、谓词(Predicate)、过滤器(Filter)和全局过滤器(Global Filter)
。路由是网关的基本构建模块,每个路由由一个 ID、目标 URI、谓词集合和过滤器集合组成;谓词决定了请求是否与路由匹配;过滤器用于对请求进行预处理或对响应进行后处理;全局过滤器应用于所有的路由。
Step 3
Q:: Spring Cloud Gateway 如何实现负载均衡?
A:: Spring Cloud Gateway 支持通过整合 Spring Cloud LoadBalancer 或 Netflix Ribbon 来实现负载均衡。通过配置服务名而非具体 URI,网关会自动将请求分发到注册中心中相应服务的实例上,达到负载均衡的目的。
Step 4
Q:: 如何在 Spring Cloud Gateway 中实现请求限流?
A:: Spring Cloud Gateway 提供了多种限流方式,其中最常用的是基于 Redis 的令牌桶算法。通过配置限流过滤器,可以为指定的路由设置每秒钟允许的请求数,超过限额的请求将被拒绝,从而有效防止服务被过度调用。
Step 5
Q:: Spring Cloud Gateway 如何处理熔断?
A:: Spring Cloud Gateway 提供了集成的熔断功能,通常通过 CircuitBreaker 过滤器来实现。可以配置熔断策略,当下游服务不可用时,网关会触发熔断器,快速返回一个预定义的响应,而不是等待超时。这样可以避免请求阻塞,提高系统的响应速度和可用性。