2016-11-04 3 views
0

Мы используем архитектуру микросервиса JHipster, используя консул для обнаружения службы. У нас есть один микросервис, который подключается к экземпляру докеры mongodb. При тестировании с запасом угловой ui для сохранения нового объекта мы обнаружили, что отключение базы данных не вызывает ошибки в пользовательском интерфейсе. Из consul ui я вижу, что служба терпит неудачу в 1 из 2 проверок здоровья, которые снова пройдут, когда я снова включу db.JHipster не бросает ошибки в пользовательский интерфейс при сбое микросервиса

В журналах шлюза я следующее: Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: import

Я предполагаю, что консул отказывается сделать сервис доступным для шлюза, но это, кажется, должно быть каким-то образом настроить как шлюз обрабатывает запросы недоступен Сервисы. Может ли кто-нибудь сказать мне, где искать это?

ответ

1

Это нормально. Шлюз будет направлять только запросы на услуги, которые передают все консульские сады.

Обратите внимание, что по умолчанию Spring Boot автоматически настраивает healtcheck для вашей базы данных. Он расположен в конечной точке/управлении/работоспособности вашего микросервиса.

Вы можете настроить проверки здоровья Consul клавишами spring.cloud.consul вашего микросервиса. Я не помню конкретных, но если вы используете IDEA, он будет автозаполнять доступные свойства ...

+0

Благодарим за отзыв Pierre. Я пытаюсь определить, как обрабатывать сценарий, когда запрашиваемая услуга недоступна. По умолчанию шлюз отправляет 200 обратно в пользовательский интерфейс, хотя запрос еще не выполнен. Я бы предпочел отправить ответ, в котором говорится, что услуга недоступна, но я не знаю, где ее установить. – thejames42

+0

@ thejames42 Это вызвано Hystrix, который автоматически «открывает цепь», поэтому отвечает на 200 секунд. Это может быть настроено в соответствии с вашими потребностями. См. Например: https://www.google.fr/amp/s/jmnarloch.wordpress.com/2015/09/16/spring-cloud-zuul-error-handling/amp/?client=ms-android-oneplus –

+0

Не знаете, как отметить это как ответ, поэтому отмечая родителя. Благодаря! – thejames42