摘要:當存在時,負載均衡的和會自動重試任何失敗的請求假設你的配置允許這樣做。啟用包括重試請求,由于請求的緩沖,請求會對服務器的資源產生影響。
重試失敗的請求
Spring Cloud Netflix提供了多種方式來發出HTTP請求,你可以使用負載均衡的RestTemplate、Ribbon或Feign。無論你如何選擇創建HTTP請求,總是有可能請求失敗,請求失敗時,你可能希望自動重試請求,要在使用Sping Cloud Netflix時這樣做,你需要在應用程序的類路徑中包含Spring Retry。當存在Spring Retry時,負載均衡的RestTemplates、Feign和Zuul會自動重試任何失敗的請求(假設你的配置允許這樣做)。
退避策略默認情況下,重試請求時不使用退避策略,如果要配置退避策略,則需要創建類型為LoadBalancedRetryFactory的bean并覆蓋給定服務的createBackOffPolicy方法,如以下示例所示:
@Configuration public class MyConfiguration { @Bean LoadBalancedRetryFactory retryFactory() { return new LoadBalancedRetryFactory() { @Override public BackOffPolicy createBackOffPolicy(String service) { return new ExponentialBackOffPolicy(); } }; } }配置
將Ribbon與Spring Retry一起使用時,可以通過配置某些Ribbon屬性來控制重試功能,為此,請設置client.ribbon.MaxAutoRetries、client.ribbon.MaxAutoRetriesNextServer和client.ribbon.OkToRetryOnAllOperations屬性,有關這些屬性的說明,請參閱Ribbon文檔。
啟用client.ribbon.OkToRetryOnAllOperations包括重試POST請求,由于請求body的緩沖,POST請求會對服務器的資源產生影響。
此外,你可能希望在響應中返回某些狀態碼時重試請求,你可以通過設置clientName.ribbon.retryableStatusCodes屬性列出你希望Ribbon客戶端重試的響應碼,如以下示例所示:
clientName: ribbon: retryableStatusCodes: 404,502
你還可以創建類型為LoadBalancedRetryPolicy的bean,并實現retryableStatusCode方法以在給定狀態碼的情況下重試請求。
Zuul你可以通過將zuul.retryable設置為false來關閉Zuul的重試功能,你還可以通過將zuul.routes.routename.retryable設置為false來逐個路由地禁用重試功能。
上一篇:使用Sidecar支持多語言文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74286.html
摘要:通用的抽象服務發現負載均衡和斷路器等模式適用于所有客戶端都可以使用的通用抽象層,獨立于實現例如,使用或發現。重試失敗的請求可以將負載均衡的配置為重試失敗的請求,默認情況下,禁用此邏輯,你可以通過將添加到應用程序的類路徑來啟用它。 Spring Cloud Commons:通用的抽象 服務發現、負載均衡和斷路器等模式適用于所有Spring Cloud客戶端都可以使用的通用抽象層,獨立于實...
摘要:應用程序可以立即利用或應用程序開發人員提供的其他外部屬性源,它還提取了一些與變化事件相關的額外有用特性。標簽也可以以逗號分隔列表的形式提供,在這種情況下,列表中的項目將逐個嘗試,直到成功為止,在處理特性分支時,此行為非常有用。 Spring Cloud Config Client Spring Boot應用程序可以立即利用Spring Config Server(或應用程序開發人員提供...
摘要:創建自己的客戶端時,你還負責為這些客戶端實施正確的連接管理策略,不正確地執行此操作可能會導致資源管理問題。維護模式的模塊將模塊置于維護模式意味著團隊將不再向模塊添加新功能,將修復和安全問題,還將考慮和審查來自社區的小型拉請求。 HTTP客戶端 Spring Cloud Netflix會自動為你創建Ribbon、Feign和Zuul使用的HTTP客戶端,但是,你也可以根據需要自定義自己的...
摘要:還有就是重試次數如果太多的話會導致請求量加倍,給后端造成更大的壓力,設置合理的重試機制才是最關鍵的。今天我們來簡單的了解下中的重試機制和使用。使用講解是對請求重試提供的一個。 前言 重試,我相信大家并不陌生。在我們調用Http接口的時候,總會因為某種原因調用失敗,這個時候我們可以通過重試的方式,來重新請求接口。 生活中這樣的事例很多,比如打電話,對方正在通話中啊,信號不好啊等等原因,你...
摘要:內部使用了的動態代理為目標接口生成了一個動態代理類,這里會生成一個動態代理原理統一的方法攔截器,同時為接口的每個方法生成一個攔截器,并解析方法上的元數據,生成一個請求模板。的核心源碼解析到此結束了,不知道是否對您有無幫助,可留言跟我交流。 Feign是一個聲明式的Web服務客戶端。這使得Web服務客戶端的寫入更加方便 要使用Feign創建一個界面并對其進行注釋。它具有可插拔注釋支持,包...
閱讀 2486·2021-10-19 11:45
閱讀 2464·2021-09-30 09:56
閱讀 1432·2021-09-30 09:47
閱讀 591·2019-08-30 15:53
閱讀 1834·2019-08-30 15:44
閱讀 584·2019-08-30 12:52
閱讀 1084·2019-08-30 11:16
閱讀 1605·2019-08-29 16:36