Hystrix 默认超时不起作用

Posted

技术标签:

【中文标题】Hystrix 默认超时不起作用【英文标题】:Hystrix default timeout not work 【发布时间】:2018-12-21 12:06:15 【问题描述】:

像这样设置默认超时

hystrix:
  threadpool:
    default:
      coreSize: 500
      maxQueueSize: 1000
      queueSizeRejectionThreshold: 800
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 30000

功能区:

ribbon:
  eager-load:
    enabled: true
    clients: dcit-auth,dcit-service-upms,dcmd-service-demand
  Httpclient:
    enabled: false
  OkHttp:
    enabled: true
  ReadTimeout: 30000
  ConnectTimeout: 30000

假装:

feign:
  hystrix:
    enabled: true
  okhttp:
    enabled: true
  httpclient:
    enabled: false
  client:
    config:
      feignName:
        connectTimeout: 30000
        readTimeout: 30000
  compression:
    request:
      enabled: true
    response:
      enabled: true

hystrix metics 为我服务:

“gauge.servo.hystrix.hystrixcommand.ribboncommand.myservice.propertyvalue_executiontimeoutinmilliseconds”:2000,

每次myservice响应超过2s都会返回500超时错误。

为什么超时设置不起作用?

【问题讨论】:

嗨!你找到解决办法了吗? @KadzhaevMarat 不,放弃,我只是更新到 Spring Boot 2.0 来解决这个问题 【参考方案1】:

我认为你正在达到 Feign 超时。 使用 feign.client.config.default 而不是 feign.client.config.feignName 将其定义为应用程序中的所有 Feign 客户端。

【讨论】:

以上是关于Hystrix 默认超时不起作用的主要内容,如果未能解决你的问题,请参考以下文章

spring cloud:Edgware.RELEASE版本hystrix超时新坑

启用 Hystrix 后 Autowire 不起作用

Feign的hystrix熔断器不起作用

Spring Boot Hystrix maximumSize 不起作用

spring cloud feign hystrix fallback 不起作用

Xamarin iOS HttpClient 超时不起作用