Какие балансировщики нагрузки вы использовали в проектах?

«Какие балансировщики нагрузки вы использовали в проектах?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В зависимости от требований проекта использовал Nginx, HAProxy и AWS Application Load Balancer (ALB).

Nginx отлично подходит для простых HTTP-сценариев с конфигурацией в файле. Он легковесен и эффективен для статики и проксирования.

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
}
server {
    location / {
        proxy_pass http://backend;
    }
}

HAProxy — более мощное решение для сложных сценариев, поддерживает балансировку как TCP, так и HTTP с продвинутыми алгоритмами и health checks.

frontend http-in
    bind *:80
    default_backend servers

backend servers
    balance roundrobin
    server server1 192.168.1.1:80 check
    server server2 192.168.1.2:80 check

AWS ALB — предпочтительный выбор в облачной среде AWS. Он обеспечивает:

  • Интеграцию с сервисами AWS (Auto Scaling Groups, ECS).
  • Автоматические health checks.
  • Маршрутизацию на основе пути (path-based routing) и хоста.
  • Управляемость и отказоустойчивость "из коробки".