Управляйте отказоустойчивостью с помощью Feign, Ribbon и Eureka - PullRequest
0 голосов
/ 12 июля 2020

Я хочу реализовать отказоустойчивую архитектуру микросервисов с использованием Feign Client, Ribbon и Eureka, поэтому я столкнулся с проблемой. Когда цель микросервисов не работает, я хочу перенаправить на другой экземпляр микросервисов, чтобы пользователь этого не видел. Например, у меня есть 4 экземпляра микросервисов B и один экземпляр A:

Клиент обозревателя вызывает A, затем A, вызов B1, но B1 не работает => Автоматическое перенаправление на B2, B2 - KO, затем A вызов B3 и B3 работает, затем он возвращает ответ на A. A возвращает ответ клиенту браузера.

Как я мог бы это реализовать, пожалуйста. Заранее спасибо.

1 Ответ

1 голос
/ 20 июля 2020
• 1000 Если это не работает для вас, вы можете попробовать настроить интервалы опроса для ленты . Если вы хотите, чтобы неудавшийся запрос повторялся для другого экземпляра, вы можете использовать Spring Cloud Netflix Ribbon с Spring Retry (см. документацию ).

Сказав это, начиная с Spring Cloud Ribbon сейчас находится в режиме обслуживания и не войдет в состав релиза 2020.0.0 , я бы определенно не рекомендовал добавлять его на этом этапе. Доступная альтернатива: Spring Cloud LoadBalancer . Он поддерживает извлечение активных экземпляров из Service Discovery (с или без кэширования и проверки работоспособности . На данный момент он не поддерживает повторные попытки, но есть проблема для него в бэклоге проекта.

...