内容简介:Spring Cloud Netflix提供了多种方式来发出HTTP请求,你可以使用负载均衡的默认情况下,重试请求时不使用退避策略,如果要配置退避策略,则需要创建类型为将Ribbon与Spring Retry一起使用时,可以通过配置某些Ribbon属性来控制重试功能,为此,请设置
重试失败的请求
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
来逐个路由地禁用重试功能。
以上所述就是小编给大家介绍的《Spring Cloud 参考文档(重试失败的请求)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- git-svn fetch时RA层请求失败
- 快速失败机制 & 失败安全机制
- 通过不断地失败来避免失败,携程混沌工程实践
- 快速失败(fail-fast)和安全失败(fail-safe)
- greenplum 集群启动失败
- Nginx 失败重试机制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP for the World Wide Web, Second Edition (Visual QuickStart Gu
Larry Ullman / Peachpit Press / 2004-02-02 / USD 29.99
So you know HTML, even JavaScript, but the idea of learning an actual programming language like PHP terrifies you? Well, stop quaking and get going with this easy task-based guide! Aimed at beginning ......一起来看看 《PHP for the World Wide Web, Second Edition (Visual QuickStart Gu》 这本书的介绍吧!