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 アプリをもう一度確認すると、次のように表示されます。
λ 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 にデプロイしたことです。ローカルにデプロイするとこの問題は発生しないため、これは重要なようです。それでも何が原因なのかはわかりません。