FeignClient自定義配置


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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM