1. 程式人生 > >java 失敗重試 ribbon spring-retry

java 失敗重試 ribbon spring-retry

java 失敗重試 ribbon springretry

ribbon 提供了Springcloud下負載均衡和失敗重試測試,ribbon 預設提供了httpclient 發起http請求,使用rxjava的retry機制進行失敗重試,使用了ribbon的預設RequestSpecificRetryHandler和DefaultLoadBalancerRetryHandler重試測策略。 但是在Springcloud中也提供了重試機制,使用spring-retry作為失敗重試,重試策略有InterceptorRetryPolicy。

下面我們從不同的幾個角度,來闡述一下這兩種重試策略中的不同點一級優缺點

springretry 重試策略:
* 提供的功能
1. 預設支援GET請求重試
2. 可配置所有操作重試(GET/PUT/POST/DELETE)
3. 支援可配置同一個Server重試多次和可配置多個Server上重試。
4. 雖然spring-retry提供了很多的重試策略,但是在spring-cloud中目前只有兩種重試策略: 不重試、可配置重試次數。
* 使用性
1. 需要通過spring-cloud的配置檔案中讀取,不支援服務級配置。

ribbon 中的重試策略:
* 提供的功能
1. 預設支援GET請求重試
2. 可配置所有操作重試(GET/PUT/POST/DELETE)
3. 支援可配置同一個Server重試多次和可配置多個Server上重試。
4. 支援根據http 返回的異常資訊決定是否進行重試,例如:ConnectException, SocketTimeoutException進行重試,其他異常不進行重試,也可以新增異常重試型別。
* 使用性
1. 使用netflix的archaius 預設支援服務級配置