Feign 调用超时,会自动重试吗?如何设置?

简介: Feign默认不重试超时请求,但可通过Retryer配置重试策略。可设置最大重试次数、间隔等参数,并结合@FeignClient的configuration属性启用,提升服务调用的容错能力。

默认情况下 Feign 调用超时不会自动重试。发生超时或其他错误时,Feign 会抛异常。当然,我们可以通过 Retryer 来启用重试机制。


Retryer 允许你配置请求失败后的重试策略。Retryer 可以配置重试次数、重试间隔等参数。你可以通过 @FeignClient 注解的 configuration 属性来配置 Feign 的重试行为。


1、定义一个 Retryer 配置类:

import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;

@Configuration
public class FeignRetryConfig {

    @Bean
    public Retryer retryer() {
        // 设置最大重试次数为 3,重试间隔为 1 秒
        return new Retryer.Default(100, TimeUnit.SECONDS.toMillis(1), 3);
    }
}

2、在 @FeignClient 注解中应用配置:

@FeignClient(name = "clay-service", configuration = FeignRetryConfig.class)
public interface ExampleServiceClient {
    @GetMapping("/api/data")
    String getData();
}


目录
相关文章
|
机器学习/深度学习 负载均衡 Java
【SpringBoot系列】微服务远程调用Open Feign深度学习
【4月更文挑战第9天】微服务远程调度open Feign 框架学习
941 2
|
6月前
|
架构师 微服务
【架构师】微服务的拆分有哪些原则?
微服务拆分需遵循七大原则:职责单一、围绕业务、中台化公共模块、按系统保障级别分离、技术栈解耦、避免循环依赖,并遵循康威定律使架构与组织匹配,提升可维护性与协作效率。
493 4
|
2月前
|
Java 关系型数据库 测试技术
吃透 3 大核心架构模式:分层、六边形、整洁架构,从底层逻辑到落地实现全解
本文详解Java企业级三大核心架构:分层、六边形与整洁架构。三者一脉相承,均围绕“关注点分离”与“依赖反转”本质原则,分别适配简单CRUD、多端集成及高复杂度长周期系统。附落地代码、避坑指南与选型策略,助开发者摆脱耦合困境,提升可维护性与可测试性。
343 5
|
4月前
|
负载均衡 Java Spring
Feign 和 OpenFeign 有什么区别?
Feign是Netflix开发的声明式HTTP客户端,简化Web服务调用。OpenFeign是Spring Cloud对其的扩展,集成负载均衡、服务发现等组件,提供自动配置,更适用于Spring生态。
416 1
|
5月前
|
SQL Java 数据库连接
Spring Boot 使用 SLF4J 进行日志记录
本课讲解Java开发中日志的最佳实践,摒弃System.out.println(),采用SLF4J+Logback方案。涵盖日志级别、配置文件编写、格式化输出与滚动策略,提升系统可观测性与维护效率。
|
负载均衡
OpenFeign重试组件Retryer原理
该文章主要讲解了OpenFeign中的重试组件Retryer的工作原理及其实现细节。
OpenFeign重试组件Retryer原理
|
8月前
|
Java 测试技术 数据库
使用Spring的@Retryable注解进行自动重试
在现代软件开发中,容错性和弹性至关重要。Spring框架提供的`@Retryable`注解为处理瞬时故障提供了一种声明式、可配置的重试机制,使开发者能够以简洁的方式增强应用的自我恢复能力。本文深入解析了`@Retryable`的使用方法及其参数配置,并结合`@Recover`实现失败回退策略,帮助构建更健壮、可靠的应用程序。
939 1
使用Spring的@Retryable注解进行自动重试
|
11月前
|
人工智能 Java Scala
Springboot捕获feign抛出的异常
本文探讨了在使用Springboot与Feign客户端时,如何有效捕获接口异常的问题。由于全局异常无法直接捕获Feign抛出的异常,文章提供了具体解决方案:通过定义自定义异常类`BusinessException`,结合`ErrorDecoder`对Feign请求异常进行处理,或在全局异常捕获中添加特定处理器。示例代码详细展示了配置与实现步骤,帮助开发者更好地应对Feign客户端的异常处理需求。
482 2
|
Java 数据处理 Spring
Spring Cloud OpenFeign 超时与重试
今天给大家分享的是 `feign` 的超时与重试配置。
1295 0
Spring Cloud OpenFeign 超时与重试
|
缓存 负载均衡 Java
OpenFeign第一个可扩展组件通信Client详解
这篇文章详细分析了OpenFeign框架中的第一个可扩展组件——通信Client,包括其默认实现`feign.Client.Default`,以及如何使用`LoadBalancerFeignClient`集成负载均衡能力,并探讨了如何替换默认的`HttpURLConnection`通信组件为`OkHttpClient`或`ApacheHttpClient`。
OpenFeign第一个可扩展组件通信Client详解