【问题标题】:com.netflix.zuul.exception.ZuulException: Hystrix Readed time outcom.netflix.zuul.exception.ZuulException:Hystrix 读取超时
【发布时间】:2019-08-20 10:45:42
【问题描述】:

我正在使用 eureka 和 zuul 尝试微服务。所有请求都存在问题,需要超过 1 秒。据我了解,1 秒是默认的 hystrix 超时,为了在 Zuul 中配置超时,我必须配置这些属性:

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds ribbon.ConnectTimeout
ribbon.ReadTimeout

但是当我设置它们时,Intelije Idea 中的每一个都有“无法解析配置属性...”警告。而且,它们似乎没有被应用并且不起作用。

【问题讨论】:

    标签: spring-boot netflix-eureka netflix-zuul hystrix netflix-ribbon


    【解决方案1】:

    在zuul服务器中设置ribbon readTime应该可以解决这个问题。

    ribbon:
      ReadTimeout: 60000
    

    注意:ReadTimeout 区分大小写。

    【讨论】:

    • 这解决了问题。谢谢
    【解决方案2】:

    在Zuul网关服务中添加如下属性

    hystrix:
      命令:
        默认值:
         执行:
           隔离:
              线程:
                 timeoutInMilliseconds:30000


    功能区:
     ReadTimeout:60000
      连接超时:3000
      eureka:
       启用:true


    zuul:
     ignoredServices:'*'
      主机:
       生存时间:-1
        connect-timeout-millis:5000
         max-per-route - 互联:10000
    最大总连接:5000

    Socket-Timeout-Millis:60000
    信号量:
    最大信号量:500

    【讨论】:

    • 谢谢!为什么 Netflix 使用两种表示法——ReadTimeout 和 connection-timeout?
    【解决方案3】:

    答案已编辑

    这样你会增加 Hystrix 超时时间(全局):

    hystrix:
      command:
        default:
          execution:
            isolation:
              thread:
                timeoutInMilliseconds: 5000
    

    或每个服务:

    hystrix:
      command:
        <serviceName>:
          execution:
            isolation:
              thread:
                timeoutInMilliseconds: 5000
    

    【讨论】:

    • 不幸的是,它不起作用。在“hystrix”之后可用的属性只有:“metrics”和“shareSecurityContext”。没有“命令”属性
    • 已编辑,立即尝试@Vados
    • 如果我将 timeoutInMilliseconds 增加到 10000,我会在 3 秒事件后收到网关超时
    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 2014-08-06
    • 2014-06-06
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多