问题描述

  每个微服务都有统一的接口超时时间设定,但也存在一些特殊的业务场景,其接口需要较长的超时时间,比如:导出excel报表、上传文件、拉取业务报表数据等等。此时,默认的超时设置就不能满足需求,故需要设置各自的超时时间。

问题分析

  使用@FeignClient 时,可以通过contextId属性为不同的接口设置不同的超时时间,在config属性中指定某服务的超时时间即可。

feign:
client:
config:
default: // 所有服务级别设置,default为任意服务,可以指定调用某服务时的超时时间
connectTimeout: 毫秒时间,建立连接的超时时间,一般只在发现服务时用到
readTimeout: 毫秒时间 ,建立连接,从服务端读取到可用数据的超时时间
remote-server-name: //contextId属性,指定调用remote-server-name服务时的超时时间
connectTimeout: 200
readTimeout: 3000

connectTimeout:单位毫秒,指定建立连接的超时时间,一般只在发现服务时用到。

readTimeout: 单位毫秒,建立连接后,从服务端读取到可用数据的超时时间。

  设置超时时间时,需要注意以下两点:

只设置connectTimeout或者readTimeout时,配置不生效,两个值必须同时设置。

feign默认的connectTimeout时长是10s,readTimeout时长是60s,上面配置的值会覆盖默认值。

问题解决

  把上述源码中的 remote-server-name 改为 remote-server-user,则在如下调用中,就设置了调用 remote-server-user 服务时的超时时间:

@FeignClient(value = "user",contextId ="remote-server-user")
public interface UserFeignService { @RequestMapping(value = { "/getUserById" })
User getUserById(@RequestParam("userId") final Long userId); }

小结

  工欲善其事,必先利其器。性能与效率是程序猿永恒的追求,对代码如此,对日常搬砖亦如此。Wiener只愿各位同仁Work Life Balance,效率高,错误少,回家早...

@FeignClient注解自定义接口超时时间的更多相关文章

  1. 【轮询】【ajax】【js】【spring boot】ajax超时请求:前端轮询处理超时请求解决方案 + spring boot服务设置接口超时时间的设置

    场景描述: ajax设置timeout在本机测试有效,但是在生产环境等外网环境无效的问题 1.ajax的timeout属性设置 前端请求超时事件[网络连接不稳定时候,就无效了] var data = ...

  2. java控制接口超时时间

    package com.xf; import java.util.concurrent.Callable; public class bbb implements Callable { private ...

  3. shiro设置session超时时间

    系统默认超时时间是180000毫秒(30分钟) long timeout = SecurityUtils.getSubject().getSession().getTimeout(); System. ...

  4. FeignClient注解属性configuration不生效问题排查思路

    FeignClient注解属性configuration不生效问题排查思路 问题背景 我们知道,"如果需要自定义单个Feign配置,Feign的@Configuration 注解的类不能与@ ...

  5. 【Spring Cloud 源码解读】之 【如何配置好OpenFeign的各种超时时间!】

    关于Feign的超时详解: 在Spring Cloud微服务架构中,大部分公司都是利用Open Feign进行服务间的调用,而比较简单的业务使用默认配置是不会有多大问题的,但是如果是业务比较复杂,服务 ...

  6. 从应用层到网络层排查 Dubbo 接口超时全记录

    大家好,我是坤哥 我们常说面试造火箭,很多人对此提出质疑,相信大家看了这篇文章会明白面试造火箭的道理,这篇排查问题的技巧涉及到索引,GC,容器,网络抓包,全链路追踪等基本技能,没有这些造火箭的本事,排 ...

  7. 使用Redis+自定义注解实现接口防刷

    最近开发了一个功能,需要发送短信验证码鉴权,考虑到短信服务需要收费,因此对此接口做了防刷处理,实现方式主要是Redis+自定义注解(需要导入Redis的相关依赖,完成Redis的相关配置,gs代码,这 ...

  8. C# 的tcp Socket设置自定义超时时间

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  9. 接口调试工具ApiPost的发送超时时间设置方法

    有部分使用ApiPost的同学反应:发送接口调试时,响应超时时间设置的太短导致接口访问失败,怎么设置呢? 就连百度也有很多人在搜: 今天就来说一说. ApiPost简介: ApiPost是一个支持团队 ...

  10. FeignClient注解及参数

    一.FeignClient注解 FeignClient注解被@Target(ElementType.TYPE)修饰,表示FeignClient注解的作用目标在接口上 1 2 3 4 5 @FeignC ...

随机推荐

  1. 少样本学习实战:Few-Shot Prompt设计

    让AI用最少样本学会"举一反三" 想象一下,你要教一个外星人认识地球上的动物.如果只给它看三张哈士奇的照片,它可能会认为所有四条腿的动物都叫"哈士奇".这就是A ...

  2. abaqus&FEA资料-科研&工具-导航

    复合材料力学 BLOGs上的书籍共享文件夹 2004-Mechanics of Composite Structural Elements.pdf,onedrive link Mechanics Of ...

  3. linux服务器开启BBR

    BBR TCP拥塞控制算法,是 Google 为优化网络传输性能而研发的网络优化协议,尤其是在高延迟.高丢包的网络环境下可以显著提升网络传输效率,改善用户体验.开启 BBR 的主要好处: 提高带宽利用 ...

  4. DB读写分离情况下,如何解决缓存和数据库不一致性问题?

    前言 在读写分离的情况下,缓存和数据库数据不一致怎么解决? 请看这一篇如何更新缓存保证缓存和数据库双写一致性? 如何解决DB数据库的数据不一致问题? 请看这一篇怎么解决DB读写分离,导致数据不一致问题 ...

  5. Netty源码—4.客户端接入流程

    大纲 1.关于Netty客户端连接接入问题整理 2.Reactor线程模型和服务端启动流程 3.Netty新连接接入的整体处理逻辑 4.新连接接入之检测新连接 5.新连接接入之创建NioSocketC ...

  6. llamacpp转换hf、vllm运行gguf

    Linux通过huggingface安装大模型 huggingface官网 https://huggingface.co/ wget https://repo.anaconda.com/minicon ...

  7. 学习EXTJS6(10)面向对象的基础框架-2【统一的组件模型】很重要

    用到ExtJS,UNIGUI是以ExtJS为基础的框架.因此掌握基础组件模型太重要了.确实就是让自己知道其所以然. Ext中所有可视组件都继承自Ext.Component. 1.Ext.Compone ...

  8. # 🤖 **DeepSeek 深度解析 PasteForm:一个让管理端开发爽到飞起的全栈解决方案**

    DeepSeek 深度解析 PasteForm:一个让管理端开发爽到飞起的全栈解决方案 各位开发者注意啦!今天我要带大家全方位解剖 PasteForm 这个神奇框架--不仅介绍核心思想,更要重点展示它 ...

  9. Java容器集合经典面试题集

    目录 概述类面试题 1. 请说一下Java容器集合的分类,各自的继承结构 2. 请谈一谈Java集合中的fail-fast和fail-safe机制 3. 如何一边遍历一边删除Collection中的元 ...

  10. surging 集成SuperSocket预发布版本2.0

    一.概述 周末在家试着扩展SuperSocket,因为之前都是只支持.net framework, 后面出现支持.NET CORE 的SuperSocket 2.0 ,然后集成进来和dotnetty ...