springcloud:feign、ribbon的超时时间和hystrix的超时熔断时间

1、ribbon的超时配置

ribbon:
  OkToRetryOnAllOperations: false #对所有操作请求都进行重试,默认false,包括连接超时(connectTimeout)和请求超时(readTimeOut)
  ReadTimeout: 3000   #负载均衡超时时间,默认值5000
  ConnectTimeout: 2000 #ribbon请求连接的超时时间,默认值2000
  MaxAutoRetries: 0     #对当前实例的重试次数,默认0,不包含首次调用
  MaxAutoRetriesNextServer: 0 #对切换实例的重试次数,默认1,不包含首次调用

ribbon的配置类参考DefaultClientConfigImpl
2、hystrix的熔断配置

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: true
        isolation:
          thread:
            timeoutInMilliseconds: 60000 #默认1000ms

3、feign的超时配置

feign:
  hystrix:
    enabled: true #默认为false,如果为false,则使用ribbon的超时设置和重试机制,否则使用feign的相关设置
  client:
    config:
      default:
        #连接到目标的时间,此处会收到注册中心启动中的影响。设置为3秒钟,如果注册中心有明显的不在线,基本是毫秒级熔断拒绝
        connectTimeout: 3000
        #获取目标连接后执行的最长时间,设置为32秒,即服务最长时
        readTimeout: 32000

注意事项:如果同时配置ribbon和feign的超时时间,以feign的为准

结论:根据上面分析,Hystrix的熔断时间要大于Feign或Ribbon的connectTimeout+readTimeout,
由于ribbon的重试次数为RetryCount = (maxAutoRetries + 1) * (maxAutoRetriesNextServer + 1),因此必须保证(maxAutoRetries + 1) * (maxAutoRetriesNextServer + 1)*(ConnectTimeout+ReadTimeout)< timeoutInMilliseconds,因为如果小于超时时间, 那就熔断了, 没有机会重试了。

具体可参考网址hystrix ,feign,ribbon的超时时间配置,以及原理分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值