日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

調用上下文

更新時間:

請求上下文包括一次調用相關的屬性,例如調用的地址,調用方的應用名,超時時間等屬性和用戶在接口定義的參數之外傳遞自定義的數據。

設置和獲取本次調用上下文

com.taobao.hsf.util.RequestCtxUtil提供設置和獲取調用上下文的靜態方法,基于ThreadLocal工作, getxxx操作會將xxx屬性從當前ThreadLocal變量中remove,僅作用于當前線程的單次調用。

具體屬性的設置和獲取如下:

  • 客戶端

    方法

    說明

    setRequestTimeout()

    設置單次調用的超時時間。

    setUserId()

    設置本次調用的單元化服務的User ID(泛化調用中需要通過此方法配置)。

    getProviderIp()

    獲取最近一次調用的服務端的IP。

    setTargetServerIp(String ip)

    設置當前線程下一次調用的目標服務器IP(此IP必須包含在內存已提供服務的地址列表里)。

    setDirectTargetServerIp(String targetIp)

    設置當前線程下一次調用的目標服務器IP(繞過注冊中心,忽略內存里的地址列表)。

  • 服務端

    方法

    說明

    getClientIp()

    服務端獲取調用方IP。

    getAppNameOfClient()

    服務端獲取調用方的應用名。

    isHttpRequest()

    是否是HTTP調用。

    getHttpHeader(String key)

    獲取HTTP請求的Header屬性。

傳遞自定義請求上下文

RpcContext 提供一種不修改接口,向服務端額外傳遞數據的方式。參數可以是自定義的DO或者基本類型。要保證對端也有該對應的類型,并且可以被序列化。

  • 客戶端發起調用前,設置上下文。

    //setup context before rpc call
    RPCContext rpcContext = RPCContext.getClientContext();
    rpcContext.putAttachment("tetantId", "123");
    
    //rpc call,context 也會傳到遠端
     orderService.queryOrder(1L);
  • 服務端業務方法內,獲取上下文。

    //get context data
    RPCContext rpcContext = RPCContext.getServerContext();
    String myContext = (String)rpcContext.getAttachment("tetantId");