上下文信息
上下文中存放的是當(dāng)前調(diào)用過程中所需的環(huán)境信息戒财。所有配置信息都將轉(zhuǎn)換為 URL 的參數(shù),參見?schema 配置參考手冊?中的對應(yīng)URL參數(shù)一列披诗。
RpcContext 是一個 ThreadLocal 的臨時狀態(tài)記錄器拨匆,當(dāng)接收到 RPC 請求库菲,或發(fā)起 RPC 請求時整袁,RpcContext 的狀態(tài)都會變化菠齿。比如:A 調(diào) B,B 再調(diào) C坐昙,則 B 機器上绳匀,在 B 調(diào) C 之前,RpcContext 記錄的是 A 調(diào) B 的信息炸客,在 B 調(diào) C 之后疾棵,RpcContext 記錄的是 B 調(diào) C 的信息。
隱式參數(shù)
可以通過?RpcContext?上的?setAttachment?和?getAttachment?在服務(wù)消費方和提供方之間進(jìn)行參數(shù)的隱式傳遞痹仙。
在服務(wù)消費方端設(shè)置隱式參數(shù)
setAttachment?設(shè)置的 KV 對是尔,在完成下面一次遠(yuǎn)程調(diào)用會被清空,即多次遠(yuǎn)程調(diào)用要多次設(shè)置开仰。
? ? ?RpcContext.getContext().setAttachment("index", "1"); // 隱式傳參拟枚,后面的遠(yuǎn)程調(diào)用都會隱式將這些參數(shù)發(fā)送到服務(wù)器端,類似cookie众弓,用于框架集成恩溅,不建議常規(guī)業(yè)務(wù)使用
? ? xxxService.xxx(); // 遠(yuǎn)程調(diào)用
? ? ?// ...