Skip to content

这不是 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 拦截器。