原创
Hystrix调用时间超时解决办法
温馨提示:
本文最后更新于 2018年06月30日,已超过 2,337 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
调用超时问题浮现
分析问题
可能有人会想,feign中是有Hystrix的,是否可以设置feign中的Hystrix的超时时间?
feign:
hystrix:
# 开启feign支持hystrix (注意,一定要开启,旧版本默认支持,新版本默认关闭)
enabled: true
# feign中的Hystrix的客户端调用超时时间
client:
config:
default:
connectTimeout: 4000
readTimeout: 4000
设置了之后并没有任何作用!
解决办法
来看看Hystrix的HystrixCommandProperties
源码:
this.executionTimeoutInMilliseconds = getProperty(propertyPrefix, key, "execution.isolation.thread.timeoutInMilliseconds", builder.getExecutionIsolationThreadTimeoutInMilliseconds(), default_executionTimeoutInMilliseconds);
this.executionTimeoutEnabled = getProperty(propertyPrefix, key, "execution.timeout.enabled", builder.getExecutionTimeoutEnabled(), default_executionTimeoutEnabled);
execution.isolation.thread.timeoutInMilliseconds
:Hystrix的默认超时时间,默认是1秒。
execution.timeout.enabled
:Hystrix超时时间默认是开启的(true)。
private static final Integer default_executionTimeoutInMilliseconds = 1000; // default => executionTimeoutInMilliseconds: 1000 = 1 second
private static final Boolean default_executionTimeoutEnabled = true;
- 本文标签: Hystrix SpringCloud SpringBoot
- 本文链接: http://www.lzhpo.com/article/25
- 版权声明: 本文由lzhpo原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权