上下文傳遞

2022-06-07 14:30:16 字數 427 閱讀 1789

上下文傳遞

在傳統的同步 rpc 呼叫時,業務往往通過執行緒變數來傳遞上下文,例如:traceid、會話 session、ip 等資訊。非同步化之後,由於潛在的執行緒切換和執行緒被多個訊息交叉復用,通常不建議繼續使用執行緒變數傳遞上下文。

非同步化之後,上下文傳遞的建議策略:

如果是 lambda 表示式,可以直接引用區域性變數,通過變數引用的方式將上下文資訊傳遞到 lambda 表示式中,後續可以通過方法傳參等層層傳遞下去。

在所有發生執行緒切換的地方,顯式的進行上下文資訊的拷貝和清理,特別需要注意的是隱式執行緒切換,例如 hystrix,底層會自己啟執行緒池。

建議通過呼叫級的訊息上下文來做引數傳遞,每個上下文都關聯一次 rpc 呼叫,呼叫完成之後自動清理掉。

非同步化之後,需要排重點查所有使用 threadlocal 的地方,通常情況下都會存在問題,需要做改造。

上下文 上下文棧

全域性 函式 區域性 在執行全域性 前將window確定為全域性執行上下文 對全域性資料進行預處理 var定義的全域性變數 undefined,新增為window的屬性 function宣告的全域性函式 賦值 fun 新增為window的方法 this 賦值 window 開始執行全域性 在呼叫函式...

中斷上下文 程序上下文

在學習與作業系統相關的知識時候,我們經常遇到程序上下文 中斷上下文,看似熟悉又感覺不是特別清晰。這裡我們從如下幾個方面進行描述。上下文是從英文中context翻譯過來的,指的是一種環境。上下文我們看起來不怎麼熟悉,但是我們可以看context的中文翻譯,或者我們能更加的情形些。context n 語...

全域性上下文與上下文

全域性上下文由main函式載入系統的主架構和主事件迴圈和全域性資料構成。是上帝創造世界時,建立的基礎事物。萬物之始,大道至簡,衍化至繁。全域性上下文代表著程式執行所需要的基礎資源。是程式執行的基礎。全域性上下文的特徵是在程式執行期間常駐記憶體。全域性上下文的生命週期和應用程式的生命週期相同。與應用程...