解決Feign異步調(diào)用丟失上下文問題
問題描述
在微服務(wù)中使用Feign 調(diào)用,為了使Feign 調(diào)用都是登錄狀態(tài),會把登錄狀態(tài)的Cookie信息都攜帶上,使用的 攔截器往請求里面存儲 cookie 信息 使用RequestContextHolder
使用Feign 遠(yuǎn)程調(diào)用 使用異步的模式 (本人是 order 服務(wù)異步調(diào)用 會員服務(wù),購物車服務(wù)),
在 order服務(wù) 本人使用攔截器往往請求里面加入了Cookie信息。

在 會員服務(wù),和購物車服務(wù)會 空異常,原因是 order 攔截器無法 獲取上下文信息 ,上下文為null;
異步編排代碼如下:

報(bào)錯(cuò)原因
RequestContextHolder 里面 ThreadLocal 存取信息
因?yàn)閿r截器 利用ThreadLocal 來獲取上下文信息,如果是異步的話,肯定就無法獲取信息了,



解決方案
在使用異步調(diào)用的時(shí)候,把RequestContextHolder 數(shù)據(jù)同步到 開啟的線程的RequestContextHolder 里面
代碼如下:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中把漢字轉(zhuǎn)換成簡拼的實(shí)現(xiàn)代碼
本篇文章是對在java中把漢字轉(zhuǎn)換成簡拼的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Spring gateway + Oauth2實(shí)現(xiàn)單點(diǎn)登錄及詳細(xì)配置
gateway是基于 WebFlux的響應(yīng)式編程框架,所以在使用securityConfig時(shí)采用的注解是@EnableWebFluxSecurity,接下來通過本文給大家介紹Spring gateway + Oauth2實(shí)現(xiàn)單點(diǎn)登錄及詳細(xì)配置,感興趣的朋友一起看看吧2021-09-09
SpringBoot JPA 表關(guān)聯(lián)查詢實(shí)例
本篇文章主要介紹了SpringBoot JPA 表關(guān)聯(lián)查詢實(shí)例,使用JPA原生的findBy語句實(shí)現(xiàn),具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04
使用SpringBoot編寫一個(gè)優(yōu)雅的單元測試

