FeignClient自定義配置
阿新 • • 發佈:2020-07-14
FeignClient裡如何進行重試(Retry)和超時(timeout)配置
FeigninClient的預設connectTimeout為10s,readTimeout為60。僅設定超時可能不會立即生效,因為預設重試次數為5次。 因此,如果想要快速失敗,則必須同時自定義超時和重試的引數,並應確保反向代理。 例如,nginx的proxy_connect_timeout和proxy_read_timeout必須大於feign的配置才能生效。 否則,nginx的504閘道器超時仍然會被外部使用者感知,並且無法實現回滾效果。
- 配置類
package cn.com.hopson.hopsonone.park.js.conf; import feign.Request; import feign.Retryer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.concurrent.TimeUnit; @Configuration public class FeignConfig { /** * 配置請求重試 */ @Bean public Retryer feignRetryer() { return new Retryer.Default(200, TimeUnit.SECONDS.toMillis(10), 10); } /** * 設定請求超時時間 * 預設 * public Options() { * this(10 * 1000, 60 * 1000); * } */ @Bean Request.Options feignOptions() { return new Request.Options(60 * 1000, 60 * 1000); } /** * 列印請求日誌 * <p> * NONE: 不記錄任何資訊 * BASIE:僅記錄請求方法,URL以及響應狀態碼和執行時間 * HEADERS:除了記錄BASIE級別得資訊之外,還會記錄請求和響應得頭資訊 * FULL:記錄所有請求與響應得明細,包括頭資訊,請求體,元資料等。 * * @return */ @Bean public feign.Logger.Level multipartLoggerLevel() { return feign.Logger.Level.FULL; } }
- 註解指定配置檔案
@FeignClient(name = "hopsonone-park-search", configuration = FeignConfig.class)