WARN: The Hystrix timeout of **ms Hystrix超时警告

文章讨论了Hystrix命令执行的线程超时时间应大于Ribbon的连接和读取超时时间乘以重试次数的总和,以避免超时警告。原来的配置导致超时警告,通过将Hystrix的timeoutInMilliseconds增加到150000解决了问题。
摘要由CSDN通过智能技术生成

Hystrix超时警告 网关日志如图
在这里插入图片描述
原配置文件:

#ribbon的全局配置项
ribbon:
  #http请求连接建立超时时间(ms)
  ConnectTimeout: 5000
  #http请求处理超时时间(ms)
  ReadTimeout: 15000
  #默认重试次数
  MaxAutoRetries: 1
  #默认尝试的实例数
  MaxAutoRetriesNextServer: 2

#熔断机制配置
#熔断的超时时间(ms)
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 15000
          #线程隔离策略配置,官方推荐使用THREAD,即下游依赖的请求在一个单独的线程中隔离,这里为了解决feign转发时需要携带head信息所以讲策略设置为SEMAPHORE,即下游依赖请求在当前调用线程中执行
          strategy: SEMAPHORE
          ```


```xml

告警原因:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds:小于ribbon超时配置公式
即 (ribbon.ConnectTimeout + ribbon.ReadTimeout) * (ribbon.MaxAutoRetries+1) * (ribbon.MaxAutoRetriesNextServer+1)>=hystrix—timeoutInMilliseconds

即(5000+15000)(1+1)(2+1)>=12000
更改后:

#ribbon的全局配置项
ribbon:
  #http请求连接建立超时时间(ms)
  ConnectTimeout: 5000
  #http请求处理超时时间(ms)
  ReadTimeout: 15000
  #默认重试次数
  MaxAutoRetries: 1
  #默认尝试的实例数
  MaxAutoRetriesNextServer: 2

#熔断机制配置
#熔断的超时时间(ms)
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 150000
          #线程隔离策略配置,官方推荐使用THREAD,即下游依赖的请求在一个单独的线程中隔离,这里为了解决feign转发时需要携带head信息所以讲策略设置为SEMAPHORE,即下游依赖请求在当前调用线程中执行
          strategy: SEMAPHORE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值