1. 程式人生 > >花擦節 dubbo非同步呼叫變同步,解決非同步呼叫返回值null的問題

花擦節 dubbo非同步呼叫變同步,解決非同步呼叫返回值null的問題

花擦節 閃電購拼團狂歡節微信中開啟:http://www.52shangou.com/buyer/pintuan/index.html


dubbo非同步呼叫變同步


當consumer或provider配置async屬性時,會有傳遞性,後面呼叫都會變非同步,如果鏈路上有一個地方程式碼是同步方式,那麼這個地方會返回null

要麼將所有鏈路上的程式碼改非同步方式(Future),要麼把非同步改同步
前一種方式工作量可能較多,因為鏈路上的dubbo呼叫可能比較多,這裡簡單說下後一種方式
 在呼叫dubbo方法前,執行RpcContext.getContext().setAttachment(Constants.ASYNC_KEY, "false");
                                而且確保xml配置中相關地方不要設定async為true
有興趣可以看dubbo原始碼
        RPcUtils.isAsync

author: https://github.com/itchanges