SpringCloud FeignClient 超时设置

 更新时间:2024年08月22日 10:54:05   作者:一直到老到直一  
FeignClient 默认的超时时间可能不满足你的需求,你可以通过几种方式来自定义这些超时设置,具有一定的参考价值,感兴趣的可以了解一下

在使用 Spring Cloud OpenFeign 时,FeignClient 默认的超时时间可能不满足你的需求。你可以通过几种方式来自定义这些超时设置。以下是一些常见的方法:

1. 使用 application.properties 或 application.yml

在 application.properties 或 application.yml 文件中,你可以直接设置 Feign 的超时时间。Feign 底层使用 Ribbon 作为客户端负载均衡器,因此这些超时设置实际上是作用于 Ribbon 的。

application.properties 示例:

# 连接超时时间,单位毫秒  
feign.client.config.default.connectTimeout=5000  
# 读取超时时间,单位毫秒  
feign.client.config.default.readTimeout=5000

如果你只想为特定的 FeignClient 设置超时时间,可以将 default 替换为对应的 FeignClient 的名称:

# 为名为 myFeignClient 的 FeignClient 设置超时  
feign.client.config.myFeignClient.connectTimeout=5000  
feign.client.config.myFeignClient.readTimeout=5000

application.yml 示例:

feign:  
  client:  
    config:  
      default:  
        connectTimeout: 5000  
        readTimeout: 5000  
      myFeignClient:  
        connectTimeout: 5000  
        readTimeout: 5000

2. 使用 Java 配置

首先,创建一个 Feign 配置类,在这个类中你可以定义自定义的 Request.Options 或其他 Feign 相关的配置 Bean:

@Configuration  
public class MyFeignClientConfig {  
  
    @Bean  
    public Request.Options options() {  
        return new Request.Options(10000, 60000); // 自定义连接超时和读取超时  
    }  
  
    // 你可以在这里定义其他 Feign 相关的配置 Bean  
}

然后,在 FeignClient 注解中通过 configuration 属性引用这个配置类:

@FeignClient(name = "myFeignClient", configuration = MyFeignClientConfig.class)  
public interface MyFeignClient {  
  
    // 定义你的远程调用方法  
    @GetMapping("/some-endpoint")  
    String someMethod();  
}

3. 方法上添加

@PostMapping(value = "/feignUrl")
Response<Boolean> feignMethod(@RequestBody Map<String, Object> params, @RequestHeader(required = false,name = "options") Request.Options options);

会给方法上增加一个入参,调用时候传入设置的超时时间

Request.Options options = new Request.Options(60*1000,60*1000);
Response<Boolean> res =  feignService.feignMethod(params, options);

到此这篇关于SpringCloud FeignClient 超时设置的文章就介绍到这了,更多相关SpringCloud FeignClient 超时内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringCloud Feign 服务调用的实现

    SpringCloud Feign 服务调用的实现

    Feign是一个声明性web服务客户端。本文记录多个服务之间使用Feign调用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Java中try-catch的使用及注意细节

    Java中try-catch的使用及注意细节

    现在有很多的语言都支持try-catch,比如常见的就是c++,java等,这篇文章主要给大家介绍了关于Java中try-catch的使用及注意细节的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Java学习之反射机制及应用场景介绍

    Java学习之反射机制及应用场景介绍

    本篇文章主要介绍了Java反射机制及应用场景,反射机制是很多Java框架的基石。非常具有实用价值,需要的朋友可以参考下。
    2016-11-11
  • SpringBoot的@Conditional条件注解详解

    SpringBoot的@Conditional条件注解详解

    这篇文章主要介绍了SpringBoot的@Conditional条件注解详解,打开每个自动配置类,都会看到@Conditional或其衍生的条件注解,本节我们来认识下@Conditional注解,需要的朋友可以参考下
    2023-12-12
  • Java常见的数据结构之栈和队列详解

    Java常见的数据结构之栈和队列详解

    这篇文章主要介绍了Java常见的数据结构之栈和队列详解,栈(Stack) 是一种基本的数据结构,具有后进先出(LIFO)的特性,类似于现实生活中的一叠盘子,栈用于存储一组元素,但只允许在栈顶进行插入(入栈)和删除(出栈)操作,需要的朋友可以参考下
    2023-10-10
  • Java实现发送HTML内容并带附件的电子邮件

    Java实现发送HTML内容并带附件的电子邮件

    这篇文章主要为大家详细介绍了如何使用Java实现发送HTML内容并带附件的电子邮件,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2025-01-01
  • 介绍下Java Spring的核心接口,容器中Bean的实例化

    介绍下Java Spring的核心接口,容器中Bean的实例化

    这篇文章主要介绍了Spring核心接口,容器中bean的实例化过程解析及完整代码示例,简单分析实例化bean过程并且分享了相关实例,具有一定借鉴价值,需要的朋友可以参考下
    2021-09-09
  • SpringBoot项目启动报错踩坑实战记录

    SpringBoot项目启动报错踩坑实战记录

    这篇文章主要给大家介绍了关于SpringBoot项目启动报错踩坑的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • Java内部类和匿名内部类的用法说明

    Java内部类和匿名内部类的用法说明

    这篇文章主要介绍了Java内部类和匿名内部类的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • JMX监控的具体使用

    JMX监控的具体使用

    JMX最常见的场景是监控Java程序的基本信息和运行情况,本文主要介绍了JMX监控的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论