在说这个问题的时候,作者真心想吐槽,由于作者在一个特殊的环境无法访问外网,所以用了度娘去查,发现搜索到的结果真的没啥用,有的根本就说不清为啥这么配置解决问题,有些简直的恶心一顿抄,有些连配置格式都有问题,真是醉了。本文的目的就想把出现"Hystrix Readed time out"来龙去脉都说清楚。
在作者总集的一个乙方的项目,出现一个奇怪的问题就是每天早晨一早第一次请求就出现如下问题,但是多刷新两下情况就正常了。
-
- "timestamp": “2823-89-07T81:12:29 ,455+8088"
- "status": 504
- "error": gateway Timeout
- "message": "com.netflix.zuul.exception.ZuulException: Hystrix Readed time out"
该问题从字面上看是hystrix 超时了,hystrix 是啥嗯? 是spring cloud zuul 网关的熔断,为啥会出现这个错误呢,是因为项目做了两个配置一个是ribbon(负载均衡的配置)配置,另一个做了hystrix(熔断的)配置 ,问题就在于hystrix的超时时间比ribbon的超时时间大。如下给一个正确的配置
- ribbon:
- eager-load:
- enabled: true
- ReadTimeout: 60000
- ConnectTimeout: 60000
- eureka:
- enabled: true
- hystrix:
- command:
- default:
- execution:
- isolation:
- thread:
- timeoutInMilliseconds: 30000 # 设置hystrix的超时时间为6000ms
注意: 如果没有配置超时时间 可能会有默认超时时间 所以原因是雷同的。
如果解决问题,麻烦您点个赞或者评论一下,让笔者知道这篇文章,有效帮助了您,谢谢了!!