SpringCloud学习–基础–6.3.1–Gateway–过滤器–介绍
1、Gateway过滤器的命名规则
XXXXGatewayFilterFactory
2、Gateway常见自带过滤器
这里我去掉名称后缀FilterFactory
2.1、AddRequestHeader
对匹配上的请求加上Header
2.2、AddRequestParameters
对匹配上的请求路由添加参数
2.3、AddResponseHeader
对从网关返回的响应添加Header
2.4、StripPrefix
对匹配上的请求路径去除前缀
3、过滤器类型
3.1、局部过滤器
- 通过 spring.cloud.gateway.routes.filters 配置在具体路由下
- 只作用在当前路由上;
- 自带的过滤器都可以配置或者自定义按照自带过滤器的方式。
- 如果配置spring.cloud.gateway.default-filters上会对所有路由生效
- 算是全局的过滤器;
- 如果配置spring.cloud.gateway.default-filters上会对所有路由生效
- 实现上都要实现GatewayFilterFactory接口。
3.2、全局过滤器
- 不需要在配置文件中配置
- 作用在所有的路由上
- 实现 GlobalFilter 接口即可。
4、执行生命周期
- Gateway的Filter的生命周期也类似Spring MVC的拦截器
- 有两个:"pre"和"post"方法,分别会在请求被执行前和被执行后调用
- "pre"和"post:可以通过过滤器的GatewayFilterChain执行filter方法前后来实现。
5、常见使用场景
5.1、请求鉴权
GatewayFilterChain 执行filter方法前,如果发现没有访问权限,直接就返回空。
5.2、异常处理
GatewayFilterChain执行filter方法后,记录异常并返回。
5.3、服务调用时长统计
GatewayFilterChain执行filter方法前后根据时间统计。