1

Spring boot と spring cloud starter hystrix ライブラリを使用して、簡単なアプリを作成しました。

私のbuild.gradleでは:

dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.cloud:spring-cloud-starter-hystrix-dashboard:1.0.0.RC2")
compile("org.springframework.cloud:spring-cloud-starter-hystrix:1.0.0.RC2")
}

上記のライブラリを使用して 1 つのアプリを hystrix ダッシュボードとしてデプロイし、@EnableHystrixDashboard

次に、注釈が付けられた別のアプリをデプロイしました@EnableHystrix

テストするためだけに、コントローラーを介して呼び出すコマンドを持つコンポーネントを追加しました。

@HystrixCommand(fallbackMethod = "onFailedToSayHello")
public String sayHello(Map<String, String> parameters) {
    if (parameters.get("fail") != null && parameters.get("fail").equals("yes")) {
        throw new RuntimeException("I failed because you told me to");
    }
    return "Hello";
}

private String onFailedToSayHello(Map<String, String> parameters) {
    return "Bye";
}

hystrix アプリは問題なく動作します。URL にアクセスすると、ストリームが表示されます

私はそれが何度も繰り返されているのを見ています。

ダッシュボードが稼働中で、実行中の hystrix サンプル アプリの URL を入力すると、ロード画面が表示されます。

hystrix ダッシュボードのロード画面

次に、hystrix アプリをもう一度確認すると、次のように表示されます。

λ curl http://myappurl/hystrix.stream
{"timestamp":1423748238280,"status":503,"error":"Service      Unavailable","message":"MaxConcurrentConnections reached: 5","path":"/hystrix.stream"}

ここからどこへ行けばいいのかわからない。hereからダウンロードした自分で構築する代わりに、hystrix ダッシュボード戦争を展開しようとしましたが、同じ結果が得られました。

また、ブラウザ コンソールに JavaScript エラー出力が表示されることにも気付きまし

サーバーログには、これが何度も繰り返されていることがわかります。

2015-02-15 20:03:55.324 情報 9360 --- [nio-8080-exec-9] ashboardConfiguration$ProxyStreamServlet:

次へのプロキシ開始接続: http://myappurl/hystrix.stream

私は今、タービンを動かしてみて、それを使って魔法のように問題が解決するかどうかを確認します. 私もここに投稿すると思いましたが、これまでに行ったことに基づいて、誰かが私の側のエラーを見つけることができる可能性があります。

編集: 言及しなかった重要な点は、アプリとダッシュボードの両方を PCF にデプロイしたことです。ローカルにデプロイするとこの問題は発生しないため、これは重要なようです。それでも何が原因なのかはわかりません。

4

2 に答える 2

0

いくつかのことが MaxConcurrentConnections につながる可能性がありますが、そのうちの 1 つは、アプリケーションによって生成されたメトリック データではありません。サーブレット (Hystrix.stream サーブレット) はデータを待機するためにループし続け、すべての接続を消費します。Hystrix github wiki には非常に良い議論があります。例: メトリクスがない場合、hystrix.stream は接続を開いたままにします #85

于 2016-03-17T16:41:37.053 に答える