Loading

Spring Cloud Gateway 路由谓词工厂、过滤器工厂详解

路由谓词工厂(Route Predicate Factories)、过滤器工厂(GatewayFilter Factories)详解

如果包含启动器,但不希望启用网关,请设置 spring.cloud.gateway.enabled=false

基本概念

  • Route:网关的基本构件。 它由一个ID、一个目标URI、一个谓词集合和一个过滤器集合定义。 如果聚合谓词为真,则匹配路由。
  • Predicate:这是一个Java 8函数谓词。 输入类型是 Spring Framework ServerWebExchange。 这允许您匹配来自HTTP请求的任何内容,例如头信息或参数。
  • Filter:这些是用特定工厂构造的 GatewayFilter 实例。 在这里,您可以在发送下游请求之前或之后修改请求和响应。

工作流程

下图提供了 Spring Cloud Gateway 如何工作的高级概述:

客户端向Spring Cloud Gateway发出请求。 如果网关处理程序映射确定一个请求匹配一个路由,它将被发送到网关Web处理程序。 此处理程序通过特定于请求的过滤器链运行请求。 虚线分隔过滤器的原因是,过滤器可以在发送代理请求之前和之后运行逻辑。 执行所有“预”筛选逻辑。 然后发出代理请求。 发出代理请求后,运行“post”筛选器逻辑。

Route Predicate Factories

Spring Cloud Gateway匹配路由,作为 Spring WebFlux HandlerMapping 基础设施的一部分。 Spring Cloud Gateway包括许多内置的路由谓词工厂。 所有这些谓词都匹配HTTP请求的不同属性。 您可以将多个路由谓词工厂与逻辑和语句组合在一起。

谓词工厂

Spring Cloud Gateway提供了十种路由谓词工厂。为网关实现灵活的转发提供了基石。

simple explain:Route Predicate Factories

AfterBeforeBetweenCookieHeaderHostMethodPathQueryRemoteAddr

GatewayFilter Factories

路由过滤器允许以某种方式修改传入的HTTP请求或传出的HTTP响应。 路由过滤器的作用域是特定的路由。 Spring Cloud Gateway包括许多内置的GatewayFilter factory。

有关如何使用以下任何过滤器的更详细示例,请查看单元测试。simple explain:GatewayFilter Factories

posted @ 2022-01-24 17:46  不颓废青年  阅读(148)  评论(0编辑  收藏  举报