Spring Cloud OpenFeign 超時與重試

今天給大家分享的是 feign 的超時與重試配置。

超時

feign:
  client:
    config:
      default:
        connectTimeout: 1000
        readTimeout: 1000

需要注意以下幾點:

1、連接超時 (connectTimeout) 和 讀取超時 (readTimeout) 同時配置時,纔會生效。

2、超時單位爲毫秒。

3、可根據服務名稱單獨定義超時。

比如, provider-get 服務提供的是查詢接口,超時時間可以設置短一些:

feign:
  client:
    config:
      provider-get:
        connectTimeout: 1000
        readTimeout: 6000

而, provider-post 服務提供的是數據處理接口,超時時間可以設置長一些:

feign:
  client:
    config:
      provider-post:
        connectTimeout: 1000
        readTimeout: 20000

重試

實現 feign.Retryer 接口

public class MyRetryer implements Retryer {
    @Override
    public void continueOrPropagate(RetryableException e) {
        throw e;
    }

    @Override
    public Retryer clone() {
        return new Default(100, TimeUnit.SECONDS.toMillis(1), 5);
    }
}

三個參數的理解:

  • period:週期,重試間隔時間
  • maxPeriod:最大週期,重試間隔時間按照一定的規則逐漸增大,但不能超過最大週期
  • maxAttempts:最大嘗試次數,重試次數

之後,我們可以進行配置:

feign:
  client:
    config:
      default:
        retryer: com.fengwenyi.springclouddemo.demospringcloudfeignsentinel.consumerservice.MyRetryer

希望今天的分享能夠在工作中幫助到你。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章