异步调用Feign请求出现RequestContextHolder.getRequestAttributes()为null的问题

参考资料:

  1. https://blog.csdn.net/weixin_43358050/article/details/113700383

场景描述:

业务实现类,开启线程异步执行feign请求。

定位分析:

  1. 考虑feign请求超时导致fallback的执行。解决方法:延迟超时时间。【失败】
  2. 考虑服务间直接请求feign无异常,异步执行执行fallback,无异常日志。定位方法:移除feign注解上的fallback或者将fallback更改为fallbackFactory。【发现空指针问题】
  3. 针对RequestContextHolder,查阅相关资料,定位问题。

问题解决

  1. 在开启线程前,获取RequestContextHolder.getRequestAttributes();
  2. 将该值传递至线程中,并通过RequestContextHolder.setRequestAttributes,绑定请求信息。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容