参考资料:
场景描述:
业务实现类,开启线程异步执行feign请求。
定位分析:
- 考虑feign请求超时导致fallback的执行。解决方法:延迟超时时间。【失败】
- 考虑服务间直接请求feign无异常,异步执行执行fallback,无异常日志。定位方法:移除feign注解上的fallback或者将fallback更改为fallbackFactory。【发现空指针问题】
- 针对RequestContextHolder,查阅相关资料,定位问题。
问题解决
- 在开启线程前,获取RequestContextHolder.getRequestAttributes();
- 将该值传递至线程中,并通过RequestContextHolder.setRequestAttributes,绑定请求信息。