Мы используем архитектуру микросервиса 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
Я предполагаю, что консул отказывается сделать сервис доступным для шлюза, но это, кажется, должно быть каким-то образом настроить как шлюз обрабатывает запросы недоступен Сервисы. Может ли кто-нибудь сказать мне, где искать это?
Благодарим за отзыв Pierre. Я пытаюсь определить, как обрабатывать сценарий, когда запрашиваемая услуга недоступна. По умолчанию шлюз отправляет 200 обратно в пользовательский интерфейс, хотя запрос еще не выполнен. Я бы предпочел отправить ответ, в котором говорится, что услуга недоступна, но я не знаю, где ее установить. – thejames42
@ 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 –
Не знаете, как отметить это как ответ, поэтому отмечая родителя. Благодаря! – thejames42