目 录CONTENT

文章目录

解决多线程异步Feign调用请求头丢失问题

筱晶哥哥
2023-02-03 / 0 评论 / 0 点赞 / 33 阅读 / 569 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-03-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

在微服务中,多线程异步+Feign调用会出现请求头丢失。

SpringCloud的微服务使用Feign进行服务间调用的时候可以使用RequestInterceptor统一拦截请求来完成设置header等相关请求,在这里我们一般会将主线程请求的请求头信息同步给子线程,但是当主线程请求先行结束的时候,子线程请求还未来得及同步请求头信息,这样从主线程请求中的请求信息会被清除,从而在RequestInterceptor中获取主线程请求头信息就是空的,从而设置到子线程中也是空的,也就是说会丢失请求头信息。

这里给出一个解决方案。

解决

  1. 在主线程中先获取请求头参数
  2. 传入子线程中
  3. 由子线程将请求头参数设置到上下文中
  4. 最后在Feign转发处理中拿到子线程设置的上下文的请求头数据,转发到下游。

具体代码查看: https://gitee.com/xiaojinggege/programming-questions

0

评论区