Spring Load Balancing

Что это

Основные разделы

Spring Cloud Ribbon

Spring Cloud Ribbon - это библиотека из экосистемы Spring Cloud, которая используется для клиентской балансировки нагрузки (client-side load balancing).

Клиентская балансировка нагрузки

Обычно балансировка нагрузки делается на сервере через отдельный балансировщик (например, Nginx, HAProxy или AWS ELB). В таком случае клиент всегда обращается к балансировщику, а он уже решает, к какому экземпляру сервиса отправить запрос.

Ribbon реализует другой подход:

Как Ribbon работает в Spring Cloud?

Пример:

@LoadBalanced
@Bean
public RestTemplate restTemplate() {
    return new RestTemplate();
}
        

Здесь @LoadBalanced говорит Spring использовать Ribbon для выбора экземпляра сервиса.

Особенности

Важно

Сейчас Ribbon считается устаревшим (deprecated). Его больше не развивают. Spring Cloud рекомендует использовать Spring Cloud LoadBalancer как замену.

Spring Cloud LoadBalancer

Что это такое?

Spring Cloud LoadBalancer — это библиотека для клиентской балансировки нагрузки (client-side load balancing) в Spring Cloud.

Как работает?

  1. Приложение вызывает сервис по имени (например, http://user-service).
  2. LoadBalancer находит список доступных инстансов (через Service Discovery, например Eureka, Consul или статический список в application.yml).
  3. Применяет стратегию выбора (по умолчанию — Round Robin).
  4. Подставляет реальный адрес (host:port) в запрос.