我使用Feign創建REST客戶端。我有我的通話工作,但我想增加一些超時支持,我有一段時間搞清楚如何做到這一點。使用Netflix Feign和Hystrix設置請求超時
Feign的文檔中提到「要將Hystrix與Feign一起使用,請將Hystrix模塊添加到您的類路徑中,然後使用HystrixFeign構建器。」好了,現在我已經得到了這一點:
service = HystrixFeign.builder()
.decoder(new GsonDecoder())
.target(ProjectService.class, URL_TO_BE_MOVED_TO_PROPS);
的我的方法現在所有正在返回HystrixCommands,我可以執行或排隊,但我仍然無法看到它們的配置。
的豪豬維基(https://github.com/Netflix/Hystrix/wiki/Configuration)說,配置應該被添加到HystrixCommand構造是這樣的:
但我的命令,正在興建/通過假死的回報,所以我沒有訪問構造函數。
一個更值得注意的事情是,假死,蝟自述(https://github.com/Netflix/feign/tree/master/hystrix)說:「要以假死使用蝟中,蝟模塊添加到您的類路徑中。然後,配置假死使用HystrixInvocationHandler」,但谷歌搜索HystrixInvocationHandler指向我的非Netflix回購。即使我使用它,我也不知道如何配置Feign來使用它。
請告訴我,我很愚蠢,這是超級簡單的,這會讓我感到高興,我已經過去了這個問題,並且因爲無法自己弄清楚而感到羞恥。
TL; DR:我想設置我的Feign客戶端發出的請求超時。怎麼做?
爲我工作。我設置了默認值而不是特定的方法。 'ConfigurationManager.getConfigInstance()。setProperty(「hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds」,5000);' – n0daft
你究竟在哪裏運行這行代碼?無論我如何設置,我所有假客戶端的超時時間仍爲1000毫秒。 – bitsofinfo
我的'configureHystrix()'方法在我使用HystrixFeign構造我的代理後運行: serviceProxy = HystrixFeign.builder()。client(new OkHttpClient()) .target(ProjectServiceProxy.class,config.getHostURL() ); configureHystrix(); – Disgruntor