【Ribbon与OpenFeign】的超时设置(解决RetryableException: Read timed out executing问题)
创始人
2025-05-28 14:35:43

Ribbon与OpenFeign的超时设置(解决RetryableException: Read timed out executing问题)

问题

feign.RetryableException: Read timed out executing GET http://CLOUD-PAYMENT-SERVICE/payment/feign/timeOutat feign.FeignException.errorExecuting(FeignException.java:213)at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:115)at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:80)
java.net.SocketTimeoutException: Read timed out

OpenFeign的超时设置

default 默认是全局的,将 default 换成某个服务的名称可以设置单个服务的超时时间

##设置feign客户端的超时时间
#建立连接所用的时间,适用于网络状况正常的情况下,两端连接所需要的时间
feign.client.config.default.connectTimeout: 8000
#指建立连接后从服务端读取到可用资源所用的时间
feign.client.config.default.readTimeout: 8000

Ribbon的超时设置

#请求连接的超时时间(ms),限制20秒内必须请求到服务,并不限制服务处理的返回时间(缺省时默认1000ms)
ribbon.ConnectTimeout: 20000
#请求处理的超时时间(ms),下级服务响应最大时间,超出时间消费方(路由也是消费方)返回timeout(缺省时默认1000ms)
ribbon.ReadTimeout: 20000
ribbon.SocketTimeout: 20000
#同一台实例最大重试次数,不包括首次调用(对当前实例的重试次数)
ribbon.MaxAutoRetries: 0
#重试负载均衡其他的实例最大重试次数,不包括首次调用(切换实例的重试次数)
ribbon.MaxAutoRetriesNextServer: 0
#是否所有操作都重试
ribbon.OkToRetryOnAllOperations: false#单独设置某个服务的超时时间,会覆盖其他的超时时间限制,服务的名称以注册中心页面显示的名称为准,超时时间不可大于断路器的超时时间
#service-a.ribbon.ReadTimeout: 50000
#service-a.ribbon.ConnectTimeout: 50000

结论

FeignRibbon 的超时时间只会有一个生效,规则:如果没有设置过 feign 超时,也就是等于默认值的时候,就会读取 ribbon 的配置,使用 ribbon 的超时时间和重试设置。否则使用 feign 自身的设置。两者是二选一的,且 feign 优先。

怎么看当前请求的超时

源码跟踪参考微服务系列:Spring Cloud 之 Feign、Ribbon、Hystrix 三者超时时间配置

feign.Request 中可以发现 OpenFeign 的默认的 connectTimeout 是 10 秒,readTimeout 是 60 秒。
在这里插入图片描述
其实 OpenFeign 集成了 RibbonRibbon 的默认超时连接时间、读超时时间都是 1 秒,源码在RibbonClientConfiguration#ribbonClientConfig
在这里插入图片描述
org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer#execute如图打断点即可看到本次请求的超时时间.
在这里插入图片描述

参考文档

  1. 【推荐】微服务系列:Spring Cloud 之 Feign、Ribbon、Hystrix 三者超时时间配置
  2. Ribbon的超时和重试机制

相关内容

热门资讯

X99主板2011-3接口E5... 最近发现精粤出了好多X99的主板,博主从intel 网站整理了X99主板2011-3接...
工信部认可老年代步车目录,十大... 本篇文章极速百科给大家谈谈工信部认可老年代步车目录,十大名牌老年代步电动四轮...,以及国家工信部公...
XNV为什么不挂本田logo?... 今天给各位分享XNV为什么不挂本田logo?东风本田XNV优缺点有哪些的知识,其中也会对东风本田xn...
细节有改动试驾2013款宝骏6... 本篇文章极速百科给大家谈谈细节有改动试驾2013款宝骏630自动型,以及2013款宝骏630舒适型对...
jetson-xavier-n... 1 sdkmanager刷写系统sdkmanager启动失败使用sdkmanager刷机时可能会遇到...
车轮为什么是圆形的(车轮为什么... 今天给各位分享车轮为什么是圆形的的知识,其中也会对车轮为什么是圆形的车轴应该装在什么位置进行解释,如...
车载以太网 - 测试用例设计 ... 关于Alive check和Mode Check相关的介绍前面的文章已经有了比较清晰的介绍,测试用例...
【Linux】信号常见概念 文章目录信号入门生活中的信号技术应用角度的信号signal函数注意事项信号的概念信号的产生信号的记录...
英菲尼迪Q50英菲尼迪Q50最... 今天给各位分享英菲尼迪Q50英菲尼迪Q50最新报价-图片-参数的知识,其中也会对英菲尼迪q50官方报...
如何看中国超燃冲压发动机获得突... 今天给各位分享如何看中国超燃冲压发动机获得突破,地面试验实现连续...的知识,其中也会对中国超燃冲压...
兰博基尼雷文顿多少钱兰博基尼雷... 本篇文章极速百科给大家谈谈兰博基尼雷文顿多少钱兰博基尼雷文顿贵吗?,以及兰博基尼雷文顿跑车图片对应的...
苦恼的反义词(苦恼的反义词最佳... 今天给各位分享苦恼的反义词的知识,其中也会对苦恼的反义词最佳答案进行解释,如果能碰巧解决你现在面临的...
命令行工具检索命令find 和... grep检索文件包含的内容的命令使用 grep 命令可以检索文件包含的内容,例如&#x...
第一章:职场入门:程序员如何开... 作为一名Java程序员,我们深知在当今激烈的市场竞争中,如何开始职业生涯是至关重要的。本章将从多个方...
C语言:文件的读写(fputc... 近段时间,在重新学习一下C语言程序设计,学习到了文件读写这一章节,觉得这方面的知识较复杂,于是把其中...
清华大学土木工程系包含哪些专业... 今天给各位分享清华大学土木工程系包含哪些专业的知识,其中也会对清华大学土木工程系包含哪些专业课程进行...
秦国卫鞅怎么死的(卫鞅最后有没... 今天给各位分享秦国卫鞅怎么死的的知识,其中也会对卫鞅最后有没有娶秦国公主进行解释,如果能碰巧解决你现...
美利达车架号(美利达车架号能查... 今天给各位分享美利达车架号的知识,其中也会对美利达车架号能查出什么信息进行解释,如果能碰巧解决你现在...
马杀鸡什么意思(日语马杀鸡什么... 本篇文章极速百科给大家谈谈马杀鸡什么意思,以及日语马杀鸡什么意思对应的知识点,希望对各位有所帮助,不...
一次 JVM 类加载异常 文章目录1. JVM 类加载异常1. 出现问题2. 解决过程1. JDK 7 版本过老2. JDK ...
Button(按钮)与Imag... 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton...
vue子组件无法根据prop属... 问题描述 在vue中,有一个父组件和一个子组件,在父组件里有一个变量&#...
雪佛兰SPARK是什么车?SP... 今天给各位分享雪佛兰SPARK是什么车?SPARK现在还有卖吗的知识,其中也会对2020雪佛兰spa...
全世界最贵的跑车(全世界最贵的... 今天给各位分享全世界最贵的跑车的知识,其中也会对全世界最贵的跑车是啥进行解释,如果能碰巧解决你现在面...
e哥什么意思(e哥是谁啊) e... 今天给各位分享e哥什么意思的知识,其中也会对e哥是谁啊进行解释,如果能碰巧解决你现在面临的问题,别忘...
推荐国内十大品牌润滑油(国内知... 今天给各位分享推荐国内十大品牌润滑油的知识,其中也会对国内知名品牌润滑油进行解释,如果能碰巧解决你现...
前端性能优化之HTTP缓存 前端缓存 前端缓存可分为两大类:HTTP 缓存和浏览器缓存。 我们今天重点是 HTTP...
Linux 端口号占用如何处理 在Linux中,可以使用以下命令来查看端口号的占用情况: sudo ne...
再探pytorch的Datas... 本文从分类、检测、分割三大任务的角度来剖析pytorch得dataset和dataloader源码&...
电影最爱剧情详细介绍,最爱电影... 电影最爱剧情详细介绍目录电影最爱剧情详细介绍最爱电影剧情最爱这部电影讲述的是啥情节电影最爱剧情详细介...