參考資料:
場景描述:
業(yè)務(wù)實現(xiàn)類,開啟線程異步執(zhí)行feign請求。
定位分析:
- 考慮feign請求超時導(dǎo)致fallback的執(zhí)行。解決方法:延遲超時時間。【失敗】
- 考慮服務(wù)間直接請求feign無異常,異步執(zhí)行執(zhí)行fallback,無異常日志。定位方法:移除feign注解上的fallback或者將fallback更改為fallbackFactory。【發(fā)現(xiàn)空指針問題】
- 針對RequestContextHolder,查閱相關(guān)資料,定位問題。
問題解決
- 在開啟線程前,獲取RequestContextHolder.getRequestAttributes();
- 將該值傳遞至線程中,并通過RequestContextHolder.setRequestAttributes,綁定請求信息。