Я создал простое приложение, используя Spring boot и библиотеку hystrix для Spring Cloud Starter.
В моем 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")
}
Я развернул одно приложение в качестве приборной панели 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-адрес, я вижу поток, результат которого я помещаю здесь .
Я просто вижу, как это повторяется снова и снова.
Моя панель инструментов запущена и работает, и когда я ввожу URL-адрес своего запущенного примера приложения hystrix, я получаю экран загрузки:
Затем, когда я снова проверяю свое приложение hystrix, я вижу это:
λ curl http://myappurl/hystrix.stream
{"timestamp":1423748238280,"status":503,"error":"Service Unavailable","message":"MaxConcurrentConnections reached: 5","path":"/hystrix.stream"}
Я не уверен, куда идти отсюда. Я попытался развернуть войну приборной панели hystrix вместо того, чтобы создавать ее самостоятельно, которую я скачал с здесь, но получил тот же результат.
Я также заметил некоторые выходные данные об ошибках JavaScript в консоли браузера, которые я помещаю здесь на случай, если они есть. использовать.
И в журналах сервера я вижу, что это повторяется снова и снова:
2015-02-15 20:03:55.324 ИНФОРМАЦИЯ 9360 --- [nio-8080-exec-9] ashboardConfiguration$ProxyStreamServlet:
Прокси открывает соединение с: http://myappurl/hystrix.stream
Сейчас я попытаюсь запустить turbine и посмотреть, поможет ли это каким-то волшебным образом исправить ситуацию. Думаю, я тоже опубликую здесь, хотя на всякий случай кто-то может заметить ошибку с моей стороны, основываясь на том, что я сделал до сих пор.
РЕДАКТИРОВАТЬ: Важный момент, о котором я не упомянул, заключается в том, что у меня есть и приложение, и панель инструментов, развернутые на PCF. Это кажется важным, поскольку эта проблема не возникает при локальном развертывании. Все еще не знаю, что вызывает это, хотя.
hystrix.stream.maxConcurrentConnections: 20
. Можете ли вы попробовать 1.0.0.RC3, который только что вышел? Есть некоторые исправления для приборной панели hystrix. - person spencergibb   schedule 14.02.2015