通过网关请求A服务,在通过A服务以Feign方式调用B服务,A服务请求头可以获取,B服务请求头获取不到
问题分析:blade请求头是通过blade-core-cloud包下BladeFeignRequestHeaderInterceptor 类实现了RequestInterceptor ,但是获取header请求头是通过线程,而线程并没有获取到当前请求线程数据,正常请求调用会通过切面调用RequestLogAspect类下aroundApi函数,aroundApi函数会调用WebUtil.getRequest()获取当前请求头,但是同Feign方式调用请求切面不会调用RequestLogAspect类下aroundApi函数,也不会获取当前请求头;查了资料说是Feign跨域请求和熔断配置有关系,把A服务sentinel熔断去掉Feign调用B服务依然没把请求组装传递
扫一扫访问 Blade技术社区 移动端