interview
springcloud
说一下SpringCloudGateway的核心概念?

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 过滤器来实现。可以配置熔断策略,当下游服务不可用时,网关会触发熔断器,快速返回一个预定义的响应,而不是等待超时。这样可以避免请求阻塞,提高系统的响应速度和可用性。

用途

面试 Spring Cloud Gateway 相关内容的原因是它在微服务架构中的重要性。随着微服务数量的增加,API 网关作为微服务的入口,起到至关重要的作用。生产环境中,网关负责请求的路由、负载均衡、限流、熔断以及认证授权等功能。这些功能是保证系统稳定性、扩展性和安全性的关键,因此企业在选拔开发人员时,会重点考察其对 Spring Cloud Gateway 的理解和掌握程度。\n

相关问题

🦆
Spring Cloud Gateway 和 Zuul 有什么区别?

Spring Cloud Gateway 和 Zuul 都是 API 网关解决方案,但 Gateway 基于 Spring 5.0 的响应式编程模型,性能更好,支持的功能也更加丰富,如路由匹配的灵活性、集成 WebFlux 和负载均衡等。而 Zuul 则是基于 Servlet 3.0 的阻塞 I/O 模型,适合传统的同步微服务架构。

🦆
Spring Cloud Gateway 如何实现身份验证和授权?

Spring Cloud Gateway 可以通过集成 Spring Security 来实现身份验证和授权。在路由中配置安全过滤器链,可以对请求进行身份验证,支持 OAuth2、JWT 等常用的认证方式,并根据用户的角色或权限控制访问资源。

🦆
如何扩展 Spring Cloud Gateway 的过滤器?

Spring Cloud Gateway 允许开发者自定义过滤器来满足特定需求。自定义过滤器需要实现 GatewayFilter 接口或 GlobalFilter 接口,并通过配置将其应用到指定的路由或全局。自定义过滤器可以在过滤链中拦截、修改请求或响应,实现例如日志记录、审计、参数校验等功能。

🦆
Spring Cloud Gateway 如何集成分布式跟踪?

Spring Cloud Gateway 可以通过集成 Spring Cloud Sleuth 和 Zipkin 等工具实现分布式跟踪。通过配置跟踪过滤器,网关会为每个请求生成或传递跟踪 ID,将跟踪数据发送到跟踪系统中,从而实现跨服务的调用链路追踪,有助于监控和排查分布式系统中的问题。