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 参考文档(重试失败的请求)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

PHP for the World Wide Web, Second Edition (Visual QuickStart Gu

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》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换