我正在对一个由 zuul 代理服务支持的简单 Spring Cloud 应用程序进行压力测试。由于 Zuul 和服务之间的连接陈旧,我们偶尔会遇到管道损坏异常。我使用不同的配置选项配置 Zuul,但没有成功:
hystrix:
command:
default:
execution:
isolation:
strategy: THREAD
thread:
timeoutInMilliseconds: 61000
ribbon:
ReadTimeout: 60000
ConnectTimeout: 6000
zuul:
host:
socket-timeout-millis: 60000
connect-timeout-millis: 60000
提前感谢您提供解决此问题的任何线索。例外情况如下:`
com.netflix.zuul.exception.ZuulException:在 org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:151) ~[router.jar!/:0.0.1] 处出现转发错误org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:114) ~[router.jar!/:0.0.1] at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java :112) ~[zuul-core-1.0.28.jar!/:na]
原因:com.netflix.hystrix.exception.HystrixRuntimeException:query-serviceRibbonCommand 失败并且没有可用的回退。at com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand.java:816) ~[hystrix-core-1.4.0-RC6.jar!/:na] at com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand. java:798) ~[hystrix-core-1.4.0-RC6.jar!/:na] at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:77) ~[rxjava-1.0.4.jar! /:1.0.4] 在 rx.internal.operators.OperatorDoOnEach$1.onError(OperatorDoOnEach.java:70) ~[rxjava-1.0.4.jar!/:1.0.4]
引起:java.net.SocketException:在 java.net.SocketOutputStream.socketWrite0(本机方法)~[na:1.8.0_45] 在 java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) 处的断管~[na: 1.8.0_45] 在 java.net.SocketOutputStream.write(SocketOutputStream.java:153) ~[na:1.8.0_45] 在 org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:159) ~[ httpcore-4.3.3.jar!/:4.3.3] ... 在 rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55) ~[rxjava-1.0.4.jar!/:1.0.4 ] at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:185) ~[ribbon-loadbalancer-2.0-RC13.jar!/:na] at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call (LoadBalancerCommand.java:180