3

私は、Zuul プロキシ サービスに支えられた単純なスプリング クラウド アプリのストレス テストを行っています。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] 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(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] ... at 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

4

1 に答える 1

5

私は同じ問題を抱えていました: zuul サーバーのapplication.ymlにzuul 実行タイムアウトを追加することで解決しました:

# 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

于 2016-04-06T12:38:44.137 に答える