com.netflix.zuul.exception.ZuulException:Hystrix 读取超时
Posted
技术标签:
【中文标题】com.netflix.zuul.exception.ZuulException:Hystrix 读取超时【英文标题】:com.netflix.zuul.exception.ZuulException: Hystrix Readed time out 【发布时间】: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 中的每一个都有“无法解析配置属性...”警告。而且,它们似乎没有被应用并且不起作用。
【问题讨论】:
【参考方案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 秒事件后收到网关超时以上是关于com.netflix.zuul.exception.ZuulException:Hystrix 读取超时的主要内容,如果未能解决你的问题,请参考以下文章