今天給大家分享的是 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
希望今天的分享能夠在工作中幫助到你。