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超時重試
調用超時怎麼辦?且不可頭疼醫頭