我正在尝试在application.yml中设置属性来设置ribbon和hystrix的超时,但我无法做到这一点。我总是遇到同样的问题:“未知属性hystrix.command”和“未知属性ribbon.ConnectTimeout”
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 11000
ribbon:
ConnectTimeout: 10000
ReadTimeout: 10000
使用Finchley.SR1 BTW。
总是得到同样的错误:
2018-08-21 19:18:31.695 WARN 13534 --- [io-8765-exec-10] o.s.c.n.z.f.r.s.AbstractRibbonCommand : The Hystrix timeout of 3000ms for the command flight-service is set lower than the combination of the Ribbon read and connect timeout, 4000ms.
2018-08-21 19:18:32.752 WARN 13534 --- [io-8765-exec-10] o.s.c.n.z.filters.post.SendErrorFilter : Error during filtering
com.netflix.zuul.exception.ZuulException:
at org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter.findZuulException(SendErrorFilter.java:114) ~[spring-cloud-netflix-zuul-2.0.1.RELEASE.jar:2.0.1.RELEASE]
at org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter.run(SendErrorFilter.java:76) ~[spring-cloud-netflix-zuul-2.0.1.RELEASE.jar:2.0.1.RELEASE]
at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:117) [zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:193) [zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:157) [zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.FilterProcessor.error(FilterProcessor.java:105) [zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.ZuulRunner.error(ZuulRunner.java:112) [zuul-core-1.3.1.jar:1.3.1]
去芬奇利后我遇到了同样的错误。调整ribbon.ConnectTimeout和ribbon.ReadTimeout后,错误消失了。
ribbon:
ConnectTimeout: 2000
ReadTimeout: 2000
尝试运行负载测试(例如在jMeter中)并查看负载下服务器的最大响应时间,读取时间为10000毫秒,连接时间为10000毫秒。
P.S
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds必须大于ribbon.ConnectTimeout + ribbon.ReadTimeout。