开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第11天,点击查看活动详情
Filter的作用
在路由转发到代理服务之前和代理服务返回结果之后额外做的事情,如果已经执行了 Filter 那么说明所有的谓词条件都已经满足。
在整个 SpringCloud Gatterway 中的路由 Filter 分为三大类:
1、内置的 Filter,它都是 GaterwayFilter实现类
2、自定义 GlobalFilter ,它代表着所有的路由都会去走这个Filter
3、自定义 GatewayFilter ,它的作用和 内置的 Filter 一样,它只能在特定的路由上执行。
内置Filter
内置Filter它一共有25个,这25个 Filter 都是 GatewayFilterFilter 接口的实现类,以下进行特别需要注意的内置Filter说明。
AddRequestHeader
它就是在请求的时候添加请求头,使用规则就是参数和值之间使用逗号分隔,使用方式如下:
每次请求的时候都会自动把请求头带上配置的参数与值。
AddRequestParameter
上面那个是添加请求头,这个是添加请求的表单参数,如果需要添加多个参数那么就需要配置多个,配置方式如下:
AddResponseHeader
在请求的时候添加相应的响应头
DedupeResponseHeader
对指定的响应头进行去重,因为使用的是 http 协议,它是一个无状态协议,请求的时候可能会出现重复的参数。
配置方式:DedupeResponseHeader=响应头参数,响应参数,strategy
多个参数使用 , 分隔,strategy为可选参数,它的取值有:
1、RETAIN_FIRST 它也是默认值,作用是保留第一个参数
2、RETAIN_LAST 作用是保留最后一个参数
3、RETAIN_UNIQUE 作用出现重复属性的值会保留一个。
CircuitBreaker
它的作用是熔断的时候使用哪种方式,Gateway支持CircuitBreaker和Hystrix两种。
FallbackHeaders
在熔断降级时添加异常信息,可以自定义一些异常信息,从而让系统更容易找到问题所在。