【问题标题】:Spring Cloud: Zuul Broken Pipe ErrorSpring Cloud:Zuul 断管错误
【发布时间】:2016-01-11 14:23:20
【问题描述】:

我正在对一个由 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] 在 com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112) ~[zuul-core-1.0.28.jar!/:na]

原因:com.netflix.hystrix.exception.HystrixRuntimeException:query-serviceRibbonCommand 失败并且没有可用的回退。 在 com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand.java:816) ~[hystrix-core-1.4.0-RC6.jar!/:na] 在 com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand.java:798) ~[hystrix-core-1.4.0-RC6.jar!/:na] 在 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: Broken pipe 在 java.net.SocketOutputStream.socketWrite0(Native Method) ~[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] 在 com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:185) ~[ribbon-loadbalancer-2.0-RC13.jar!/:na] 在 com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:180

【问题讨论】:

  • 你有没有设法解决这些问题,我们在这里遇到了类似的问题。

标签: spring-cloud netflix-zuul


【解决方案1】:

我遇到了同样的问题:我已经通过将zuul执行超时添加到zuul服务器的application.yml来解决它:

# Increase the Hystrix timeout to 60s (globally)
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 60000

有关 netflix 问题请参考此主题:https://github.com/spring-cloud/spring-cloud-netflix/issues/321

【讨论】:

  • 我也尝试过 hystrix 配置,但将策略更改为 THREAD 您正在运行什么版本的 Spring Cloud?谢谢
  • 我在 spring cloud Angel.SR6 上运行(使用 spring cloud starter parent)。
猜你喜欢
  • 2017-11-16
  • 1970-01-01
  • 2011-03-29
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
相关资源
最近更新 更多