内容简介: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 失败重试机制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
模糊数学基础及实用算法
李鸿吉编 / 科学出版社 / 2005-1 / 55.00元
本书开发了模糊数学常用的计算机程序,并以大量的算例系统地介绍了模糊数学的实用算法。本书可以作为模糊数学的应用程序包,在详细解释源代码的同时,对应用程序开发所用到的Visual Basic 6.0方法做了系统介绍,其目的是为读者做进一步的自主开发提供便利。本书所提供的源程序可以作为读者自主开发的素材。本书配有光盘,分章节提供程序源代码。 本书可以作为大专院校、培训班的教学参考书。对需......一起来看看 《模糊数学基础及实用算法》 这本书的介绍吧!
SHA 加密
SHA 加密工具
HEX HSV 转换工具
HEX HSV 互换工具