这不是 Feign 拦截器
过滤器类型区分
- RequestParamContextFilter:Web 请求过滤器,处理进入服务的 HTTP 请求
- Feign 拦截器:处理从服务发出的 HTTP 请求
具体差异
RequestParamContextFilter 特点
- 继承
OncePerRequestFilter - 位于
javax.servlet.Filter体系 - 处理流入请求:从外部进入当前服务的请求
- 从请求头提取 [TRACE_ID](file://D:\Java_projects\damai_new\damai-common\src\main\java\com\damai\constant\Constant.java#L14-L14) 并放入
MDC
Feign 拦截器特点
- 实现
RequestInterceptor接口 - 位于
org.springframework.cloud.openfeign体系 - 处理流出请求:从当前服务发往其他服务的请求
- 从
MDC获取 [TRACE_ID](file://D:\Java_projects\damai_new\damai-common\src\main\java\com\damai\constant\Constant.java#L14-L14) 并添加到请求头
两者协作关系
服务A接收入口:
RequestParamContextFilter -> 从Header获取traceId -> 放入MDC
服务A发出出口:
Feign拦截器 -> 从MDC获取traceId -> 添加到Header -> 发送给服务B所以 [RequestParamContextFilter](file://D:\Java_projects\damai_new\damai-thread-pool-framework\src\main\java\com\damai\filter\RequestParamContextFilter.java#L42-L71) 是请求入口过滤器,不是 Feign 拦截器。