SpringCloud-Gateway(Filter_URL)

50 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情

Filter

内置Filter对URL的转发都是GaterwayFilter实现类,同时对转发的URL配置主要有以下几个

PrefixPath

它的作用是用于匹配所有满足条件的URL。
比如我们在一个微服务中有一个服务的注册名称是 data,然后我们对这个服务没有任何限制,所有的请求都可以直接通过,那么就可以配置成 -Path=/data/**
但是如果我们想让所有的请求都通过则配置成 -Path=/** 表示可以让所有的请求都通过验证。

图片.png

StripPrefix

它表示跳过路由url中前几段后发送给下游服务器。

图片.png

例如以上这样配置,那么表示跳过 /item 发送给 /one

Retry

表示设置重试次数
当请求错误的时候,如果超过设置的阈值那么就不会进行继续转发进而报错。

SetPath

它的功能其实和 StripPrefix 有点类似,但是它的法语更贴近 Restful 风格。 比如当请求路径为 /red/blue 时会将 /blue 请求发送给下游,配置就如下所示:

图片.png

Filter重定向

Filter中重定向属性主要有以下几种

RequestRateLimiter

它的作用是作为一个限流的过滤器。
还有一些常见的限流算法,具体需要见Gateway的限流算法

RedirectTo

它的作用是进行重定向,它是有两个参数,一个是status另一个是url,在使用过程中status是 http 状态码中的300系列作为重定向的状态码。 使用方式的案例如下,我们重定向一个请求到 baidu.com

图片.png

Filter中对URL的操作方式还有不少,这里列举的只有以上这几点也是会经常用到的一些内置Filter。