The Hystrix timeout of 180000ms for the command xxxx is set lower than the combination

#配置Ribbon的超时时间
ribbon:
  ReadTimeout: 60000
  ConnectTimeout: 60000
  MaxAutoRetries: 2
  MaxAutoRetriesNextServer: 1
 
hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: SEMAPHORE
          #配置hystrix的超时时间
          thread:
            timeoutInMilliseconds: 180000

ribbonTimeout = (RibbonReadTimeout + RibbonConnectTimeout) * (MaxAutoRetries + 1) * (MaxAutoRetriesNextServer + 1)

这里的Ribbon的负载均衡的总的超时时间是 720000而熔断的时间是180000 < 720000

其中,MaxAutoRetries 默认为2,MaxAutoRetriesNextServer 默认为1,所以我这里的具体值为:(600000+600000)x(2+1)*(1+1)=720000。

而 Hystrix 超时时间为 180000 < 720000,从逻辑上来讲,hystrixTimeout 要大于 ribbonTimeout,否则 hystrix 熔断了以后,ribbon 的重试就都没有意义了。

解决方法:
一、要么配置hystrix的超时时间不小于40000

二、要么调低 ribbon 的 timeOut 或者重试次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值