在springboot項目中,dubbo消費者在設置dubbo超時時間時,可以在application.yml里設置屬性 dubbo.consumer.timeout。這是服務級。也可以在@Reference註解上給timeout屬性賦值,來指定特定介面的超時時間。 ...
dubbo超時設置方式
dubbo服務引用可以細化到介面級別。
在springboot項目中,dubbo消費者在設置dubbo超時時間時,可以在application.yml里設置屬性 dubbo.consumer.timeout。這是服務級。
也可以在@Reference註解上給timeout屬性賦值,來指定特定介面的超時時間。
註意
通過@Reference指定介面級timeout時,需要註意的是:在消費者服務中,不同的bean利用@Reference註入同一個dubbo介面時,如果其中一個@Reference有指定timeout,那麼,對於整個應用服務來說,這個介面的超時時間可能是這個timeout值,也可能是預設值,這取決於消費者服務在啟動時,哪個bean先裝載到容器中。
所以,如果某個dubbo服務介面里存在耗時嚴重的方法介面,那麼,在設置超時時間時,除非你確信不調用這個耗時方法,否則不要設置得太小,以免發生超時異常。諸如:org.apache.dubbo.rpc.RpcException: Failed to invoke the method selectEnterpriseByEntId in the service。server elapsed: 1515 ms, timeout: 1500 ms
dubbo超時相關文章:
dubbo實戰篇:dubbo超時重試
調用超時怎麼辦?且不可頭疼醫頭
當看到一些不好的代碼時,會發現我還算優秀;當看到優秀的代碼時,也才意識到持續學習的重要!--buguge
本文來自博客園,轉載請註明原文鏈接:https://www.cnblogs.com/buguge/p/17061979.html