源码分析-SpringCloudGateway源码阅读-过滤器包类总览

源码解析-SpringCloudGateway
01 源码分析-SpringCloudGateway源码阅读准备
02 源码分析-SpringCloudGateway源码阅读-网关监控端点
03 源码分析-SpringCloudGateway源码阅读-网关配置类
04 源码分析-SpringCloudGateway源码阅读-服务发现
05 源码分析-SpringCloudGateway源码阅读-网关自定义事件
06 源码分析-SpringCloudGateway源码阅读-过滤器包类总览
07 源码分析-SpringCloudGateway源码阅读-过滤器-全局过滤器源码(一)
08 源码分析-SpringCloudGateway源码阅读-过滤器-全局过滤器源码(二)
09 源码分析-SpringCloudGateway源码阅读-过滤器-全局过滤器源码(三)
10 源码分析-SpringCloudGateway源码阅读-过滤器-路由过滤器源码解读
11 源码分析-SpringCloudGateway源码阅读-处理器源码

一 过滤器相关类情况如下

以下是过滤器包下相关类及其说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
.
└── org
└── springframework
└── cloud
└── gateway
└── filter
   ├── AdaptCachedBodyGlobalFilter.java - 缓存请求body的全局过滤器 通过缓存请求body事件可触发标识缓存
   ├── FilterDefinition.java - 过滤器定义类
   ├── ForwardPathFilter.java - 转发路径全局过滤器
   ├── ForwardRoutingFilter.java - 转发路由过滤器
   ├── GatewayFilter.java - 路由过滤器父接口
   ├── GatewayFilterChain.java - 路由过滤器
   ├── GatewayMetricsFilter.java - 网关度量监控全局过滤器
   ├── GlobalFilter.java - 全局过滤器父接口
   ├── LoadBalancerClientFilter.java - (已弃用)网关负载均衡客户端过滤器(同步)
   ├── NettyRoutingFilter.java - Netty路由全局过滤器
   ├── NettyWriteResponseFilter.java - Netty写响应全局过滤器
   ├── OrderedGatewayFilter.java - 有序路由过滤器
   ├── ReactiveLoadBalancerClientFilter.java - 响应式负载均衡过滤器
   ├── RemoveCachedBodyFilter.java - 清除缓存body的全局过滤器
   ├── RouteToRequestUrlFilter.java - 路由到请求Url的全局过滤器
   ├── WebClientHttpRoutingFilter.java - 使用WebClient请求的全局过滤器
   ├── WebClientWriteResponseFilter.java - 使用WebClient写响应过滤器
   ├── WebsocketRoutingFilter.java - Websocket路由全局过虑器
   ├── WeightCalculatorWebFilter.java - 权重计算Web过滤器
   ├── factory
   │   ├── AbstractChangeRequestUriGatewayFilterFactory.java 更改请求url路由过滤器抽象类
   │   ├── AbstractGatewayFilterFactory.java 路由过滤器抽象工厂
   │   ├── AbstractNameValueGatewayFilterFactory.java 仅含名称和值配置的路由过滤器抽象工厂
   │   ├── AddRequestHeaderGatewayFilterFactory.java 增加请求头路由过滤器工厂
   │   ├── AddRequestParameterGatewayFilterFactory.java 增加请求参数路由过滤器工厂
   │   ├── AddResponseHeaderGatewayFilterFactory.java 增加响应头路由过滤器工厂
   │   ├── DedupeResponseHeaderGatewayFilterFactory.java 删除重复响应头路由过滤器工厂
   │   ├── FallbackHeadersGatewayFilterFactory.java 允许异常转发路由过滤器工厂
   │   ├── GatewayFilterFactory.java 路由过滤器工厂接口
   │   ├── HystrixGatewayFilterFactory.java Hystrix支持路由过滤器工厂
   │   ├── MapRequestHeaderGatewayFilterFactory.java 映射请求头的值为新请求头的路由工厂过滤器
   │   ├── PrefixPathGatewayFilterFactory.java 请求转发路径增加前缀路由过滤器工厂
   │   ├── PreserveHostHeaderGatewayFilterFactory.java 转发下游保留Host请求头的路由过滤器工厂
   │   ├── RedirectToGatewayFilterFactory.java 重定向请求的路由过滤器工厂
   │   ├── RemoveRequestHeaderGatewayFilterFactory.java 删除请求头的路由过滤器工厂
   │   ├── RemoveRequestParameterGatewayFilterFactory.java 删除请求参数的路由过滤器工厂
   │   ├── RemoveResponseHeaderGatewayFilterFactory.java 删除响应头的路由过滤器工厂
   │   ├── RequestHeaderSizeGatewayFilterFactory.java 限制请求头大小的路由过滤器工厂
   │   ├── RequestHeaderToRequestUriGatewayFilterFactory.java 通过请求标头更改请求uri路由过滤器工厂
   │   ├── RequestRateLimiterGatewayFilterFactory.java 请求限流路由过滤器工厂
   │   ├── RequestSizeGatewayFilterFactory.java 限制请求大小的路由过滤器工厂
   │   ├── RetryGatewayFilterFactory.java 重试路由过滤器工厂
   │   ├── RewriteLocationResponseHeaderGatewayFilterFactory.java 重新Location响应头的路由过滤器工厂
   │   ├── RewritePathGatewayFilterFactory.java 重写路径的路由过滤器工厂
   │   ├── RewriteResponseHeaderGatewayFilterFactory.java 重新响应头的路由过滤器工厂
   │   ├── SaveSessionGatewayFilterFactory.java 保存Session的路由过滤器工厂
   │   ├── SecureHeadersGatewayFilterFactory.java 安全请求头路由过滤器工厂
   │   ├── SecureHeadersProperties.java 安全请求头配置
   │   ├── SetPathGatewayFilterFactory.java 设置路径的路由过滤器工厂
   │   ├── SetRequestHeaderGatewayFilterFactory.java 设置请求头路由过滤器工厂
   │   ├── SetRequestHostHeaderGatewayFilterFactory.java 设置请求Host请求头路由过滤器工厂
   │   ├── SetResponseHeaderGatewayFilterFactory.java 设置响应头路由过滤器工厂
   │   ├── SetStatusGatewayFilterFactory.java 设置响应http状态值路由过滤器工厂
   │   ├── SpringCloudCircuitBreakerFilterFactory.java 断路器支持路由过滤器工厂
   │   ├── SpringCloudCircuitBreakerHystrixFilterFactory.java 断路器Hystrix支持路由过滤器工厂
   │   ├── SpringCloudCircuitBreakerResilience4JFilterFactory.java 断路器Resilience4J支持路由过滤器工厂
   │   ├── StripPrefixGatewayFilterFactory.java 跳过路径前缀节数路由过滤器工厂
   │   └── rewrite 重写body的路由过滤器工厂的包
   │   ├── CachedBodyOutputMessage.java 缓存Body的message的消息类
   │   ├── GzipMessageBodyResolver.java Gzip的encoder与decoder支持
   │   ├── HttpMessageWriterResponse.java 已废弃类,没被其他类依赖
   │   ├── MessageBodyDecoder.java Body消息解码器
   │   ├── MessageBodyEncoder.java Body消息编码器
   │   ├── ModifyRequestBodyGatewayFilterFactory.java 重写请求body路由过滤器工厂
   │   ├── ModifyResponseBodyGatewayFilterFactory.java 重写响应body路由过滤器功能
   │   └── RewriteFunction.java 重写的Function
   ├── headers
   │   ├── ForwardedHeadersFilter.java 转发请求头过滤器
   │   ├── HttpHeadersFilter.java http请求头过滤器
   │   ├── RemoveHopByHopHeadersFilter.java 删除逐跳请求头过滤器
   │   └── XForwardedHeadersFilter.java x-forwarded请求头过滤器
   └── ratelimit 限流过滤器用到的其他一些类
   ├── AbstractRateLimiter.java 抽象限流器
   ├── KeyResolver.java Key解析器接口
   ├── PrincipalNameKeyResolver.java 用户标识key解析器
   ├── RateLimiter.java 限流器
   └── RedisRateLimiter.java Redis限流器

二 全局过滤器UML

其中有16个全局过滤器如下:

GlobalFilter

三 路由过滤器UML

路由过滤器有近四五十个,具体如下图:

GatewayFilterFactory