Spring Cloud 参考文档(重试失败的请求)

栏目: Java · 发布时间: 5年前

内容简介: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.MaxAutoRetriesclient.ribbon.MaxAutoRetriesNextServerclient.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支持多语言


以上所述就是小编给大家介绍的《Spring Cloud 参考文档(重试失败的请求)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

李开复、王咏刚 / 文化发展出版社 / 2017-5-10 / CNY 55.00

人工智能已经来了,它就在我们身边,几乎无处不在。 人工智能技术正在彻底改变人类的认知,重建人机相互协作的关系。史无前例的自动驾驶正在重构我们头脑中的出行地图和人类生活图景,今天的人工智能技术也正在翻译、写作、绘画等人文和艺术领域进行大胆的尝试。 我们真的知道什么是人工智能吗? 我们真的准备好与人工智能共同发展了吗? 我们该如何在心理上将人和机器摆在正确的位置? 我们该......一起来看看 《人工智能》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具