Dubbo3 隱式參數(shù)

2022-03-31 15:22 更新

通過 Dubbo 中的 Attachment 在服務(wù)消費(fèi)方和提供方之間隱式傳遞參數(shù)

可以通過 ?RpcContext ?上的 ?setAttachment ?和 ?getAttachment ?在服務(wù)消費(fèi)方和提供方之間進(jìn)行參數(shù)的隱式傳遞。

注意
path, group, version, dubbo, token, timeout 幾個 key 是保留字段,請使用其它值。

/user-guide/images/context.png

在服務(wù)消費(fèi)方端設(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)用
// ...

在服務(wù)提供方端獲取隱式參數(shù)

public class XxxServiceImpl implements XxxService {
 
    public void xxx() {
        // 獲取客戶端隱式傳入的參數(shù),用于框架集成,不建議常規(guī)業(yè)務(wù)使用
        String index = RpcContext.getContext().getAttachment("index"); 
    }
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號