Spring Cloud Gateway GlobalFilter 整理

390 字
2 分钟
Spring Cloud Gateway GlobalFilter 整理

访问 http://localhost<8080>/actuator/gateway/globalfilters 可以获取所有 GlobalFilter 以及对应的 Order 顺序, 按照 spring 的特性, 值越小的优先级越高

{
"org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@41167ded": 10000,
"org.springframework.cloud.gateway.filter.NettyRoutingFilter@63262071": 2147483647,
"org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@77ab5214": -2147482648,
"com.qnvip.gateway.filter.LoggingFilter@135e49b2": 2147483647,
"org.springframework.cloud.gateway.filter.ForwardRoutingFilter@13e1e816": 2147483647,
"org.springframework.cloud.gateway.filter.ForwardPathFilter@36238b12": 0,
"org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@1282f784": -2147483648,
"org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@2d4f67e": -1,
"org.springframework.cloud.gateway.filter.GatewayMetricsFilter@41938e1e": 0,
"org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@33187485": 2147483646,
"org.springframework.cloud.gateway.filter.LoadBalancerServiceInstanceCookieFilter@10b87ff6": 10151,
"org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter@5bb97fe7": 10150
}

汇总表#

FilterOrder 值用途
AdaptCachedBodyGlobalFilter-2147482648缓存请求体, 以便在后续的请求中重复使用
RemoveCachedBodyFilter-2147483648移除上下文中 cachedRequestBody 属性
NettyWriteResponseFilter-1该过滤器在所有其他过滤器执行完成后执行,并将代理响应协会网关的客户端侧
WebClientWriteResponseFilter-1通过 webclient 并将代理响应协会网关的客户端侧(实验性, 功能和WebClientWriteResponseFilter类似)
GatewayMetricsFilter0metrics 采集
ForwardPathFilter0是在请求转发(Forward)时,处理请求路径的修改和重写
RouteToRequestUrlFilter10000根据目标服务的URI来构建新的请求URI
NoLoadBalancerClientFilter10150没有路由规则匹配时抛出 404
ReactiveLoadBalancerClientFilter10150提供负载均衡能力, 推荐
LoadBalancerServiceInstanceCookieFilter10151提供负载均衡能力, 基于Ribbon, 不推荐
WebsocketRoutingFilter2147483646处理 WebSocket 协议的请求,将 WebSocket 请求路由到目标 WebSocket 服务器
NettyRoutingFilter2147483647它使用Netty HttpClient 向下游发送代理请求。获得的响应将放在exchange的 ServerWebExchangeUtils.CLIENT_RESPONSE_ATTR 属性中,以便在后面的filter中使用
ForwardRoutingFilter2147483647其根据 forward:// 前缀( Scheme )过滤处理,将请求转发到当前网关实例本地接口
WebClientHttpRoutingFilter2147483647通过 webclient 向下游发送代理请求(实验性, 功能和NettyRoutingFilter类似)

📎 参考文章#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Spring Cloud Gateway GlobalFilter 整理
https://blog.sephy.top/posts/spring-cloud-gateway-globalfilter-notes/
作者
虾米
发布于
2024-02-19
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
虾米
coder
分类
标签
最新动态

还没有发布动态

更多动态
站点统计
文章
63
动态
0
分类
5
标签
57
总字数
67,972
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.14.2
文章许可
CC BY-NC-SA 4.0