带有 Spring Cloud 和 WebFlux 的 Spring Boot 网关

这是一个使用 Spring Cloud 构建的 API 网关示例,主要内容如下:

  • 核心功能:作为中心入口点,网关路由请求到不同的微服务,提供请求路由、认证和速率限制等功能,WebFlux 实现非阻塞、异步请求处理,确保高性能和可扩展性。
  • 使用的库:Spring Boot、Spring WebFlux、Spring Cloud。
  • 功能特点:包括 API 请求路由、API 速率限制、认证、上下游 API 详细信息日志记录。
  • 运行应用步骤:安装 JDK 21 或最新版本,克隆项目仓库到本地,更新属性文件中的端口和 API 路由样本(如有需要),运行gateway-service应用,Spring WebFlux 应用基于 Netty 服务器运行,要运行非阻塞、反应式应用需确保使用 Netty 服务器。
  • 工作原理

    • 系统依赖:在 pom.xml 中定义了 Java 版本、Spring Cloud 版本等依赖,包括 Spring Boot Starter Webflux、Spring Cloud Gateway、Springdoc OpenAPI for Webflux 等。
    • API 路由配置:在 application-test.properties 文件中配置了上游和下游的 URL 及其相关配置,如路径、谓词、过滤器等。
    • API 认证配置:通过 JwtAuthGatewayFilterFactory 类实现 JWT 认证过滤器,@Order(3)注解决定过滤器执行优先级,在handleUnauthorized方法中处理未授权情况。
    • API 全局过滤器配置:GlobalFilterConfig 类负责捕获上下游 API 详细信息用于分析,也可使用默认属性文件配置日志。
    • API 速率限制配置:通过 RateLimiterGatewayFilterFactory 类实现自定义速率限制机制,在isAllowed方法中判断是否允许请求。
  • Git 仓库:可在GitHub查看代码。
  • 结果:下载代码库,自定义属性文件以满足 API 需求,部署应用,确保所有配置正确以优化性能和安全性,运行应用并监控其行为。
阅读 13
0 条评论