众妙之门

业精于勤,荒于嬉;行成于思,毁于随

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  149 随笔 :: 0 文章 :: 43 评论 :: 65万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

在Spring Boot微服务架构中,大部分公司都是利用Open Feign进行服务间的调用,而在业务场景比较简单的时候,使用默认配置是不会遇到多大问题的。但是如果业务比较复杂,服务要进行比较繁杂的业务计算,那后台很有可能会出现Read Timeout这个异常,因此定制化配置超时时间就有必要了。
影响到feign接口超时时间的主要有三类配置:feign、ribbon、hystrix和OKhttp(若配置)。

注意:Feign 和 Ribbon 的超时时间只会有一个生效
当我们没有显式配饰feign的超时时间的是时候,如果配置了ribbon的超时时间,则只有这个配置会生效,feign默认的1s超时无效
如果我们feign和ribbon的超时时间都配置了,会以feign配置的为准

在Feign中开启Hystrix
Feign本身支持Hystrix,默认是关闭Hystrix的,需要在配置文件中开启。但不同的Spring Cloud版本,开启Hystrix的配置不一样。
1、Spring Cloud 2020之前的版本
只需在配置文件中设置feign.hystrix.enabled=true
2、Spring Cloud 2020之后的版本
feign.hystrix.enabled=true无法解析,需要配置:feign.circuitbreaker.enabled=true

如果没有打开feign.hystrix.enabled=true,超时后会直接报异常,打开后才会走熔断

同时配置hystrix和feign的时候,如果没有关闭hystrix的超时会适用hystrix的配置,如果使用feign的配置

使用feign的超时

复制代码
feign:
  hystrix:
    enabled: true
  client:
    config:
      default:
        connectTimeout: 120000
        readTimeout: 120000

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: false
复制代码

使用hystrix的超时

复制代码
feign:
  hystrix:
    enabled: true
#超时时长
ribbon:
  ReadTimeout: 70000  #处理请求的超时时间
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 70000
复制代码

 https://blog.csdn.net/w55935/article/details/126158124

posted on   xuanm  阅读(1595)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示