И Zuul, и Ribbon можно использовать для балансировки нагрузки. Но в каком случае мы должны предпочесть Zuul ленте и наоборот?
Пример использования ленты Zuul и Netflix
Ответы (2)
По умолчанию балансировщик нагрузки Zuul использует ZoneAwareLoadBalancer из ленты. Таким образом, нет ничего лучше выбора между Zuul и Ribbon для балансировки нагрузки, в основном Ribbon участвует в балансировке нагрузки. проверьте балансировку нагрузки Zuul
Поскольку лента является модулем балансировки нагрузки на стороне клиента и интегрирована во многие клиентские модули http. Например, Feign и RestTemplate с балансировкой нагрузки поддерживают Ribbon. проверьте работу ленты с балансировщиком нагрузки
Что касается Zuul, существует RibbonRoutingFilter
, который направляет ваш запрос в реальный экземпляр службы. RibbonRoutingFilter
использует ленту для выбора сервера из списка, указанного в вашей конфигурации или в Eureka. Поэтому, если вы хотите использовать Zuul в качестве обратного прокси-сервера с балансировкой нагрузки, Zuul нуждается в ленте.
Zuul предоставляет только маршрутизирующую часть шаблона Gateway. Но если вы используете реплицированные микросервисы, в дело вступает лента. Лента по умолчанию использует метод циклического перебора для распространения сообщения на каждую реплику.
EX: Предположим, что есть 3 клиента, которые делают запросы. Согласно рисунку клиентские запросы приходят на zuul и лента распределяет 1-го клиента на реплику 1, 2-го на реплику 2-го и 3-го на реплику 3-го аналогично. Это означает, что балансировка нагрузки запроса.