开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情
Filter
内置Filter对URL的转发都是GaterwayFilter实现类,同时对转发的URL配置主要有以下几个
PrefixPath
它的作用是用于匹配所有满足条件的URL。
比如我们在一个微服务中有一个服务的注册名称是 data,然后我们对这个服务没有任何限制,所有的请求都可以直接通过,那么就可以配置成 -Path=/data/**
但是如果我们想让所有的请求都通过则配置成 -Path=/** 表示可以让所有的请求都通过验证。
StripPrefix
它表示跳过路由url中前几段后发送给下游服务器。
例如以上这样配置,那么表示跳过 /item 发送给 /one
Retry
表示设置重试次数
当请求错误的时候,如果超过设置的阈值那么就不会进行继续转发进而报错。
SetPath
它的功能其实和 StripPrefix 有点类似,但是它的法语更贴近 Restful 风格。 比如当请求路径为 /red/blue 时会将 /blue 请求发送给下游,配置就如下所示:
Filter重定向
Filter中重定向属性主要有以下几种
RequestRateLimiter
它的作用是作为一个限流的过滤器。
还有一些常见的限流算法,具体需要见Gateway的限流算法
RedirectTo
它的作用是进行重定向,它是有两个参数,一个是status另一个是url,在使用过程中status是 http 状态码中的300系列作为重定向的状态码。 使用方式的案例如下,我们重定向一个请求到 baidu.com
Filter中对URL的操作方式还有不少,这里列举的只有以上这几点也是会经常用到的一些内置Filter。