Балансировка нагрузки – распределение входящих запросов или соединений между несколькими экземплярами сервиса. Балансировщик проверяет доступность серверов, исключает неработающие и направляет трафик по выбранному алгоритму.
Уровни
- L4 (транспортный): балансировка TCP/UDP-соединений по адресам и портам.
- L7 (прикладной): маршрутизация HTTP-запросов по адресу, заголовкам, cookies, терминирование TLS.
- DNS и глобальная балансировка между площадками.
Алгоритмы
- По кругу (round robin), взвешенный.
- По наименьшему числу соединений.
- По хешу адреса или сессии для «липких» сессий.
Решения
- Программные балансировщики и обратные прокси (nginx, HAProxy и другие).
- Аппаратные и виртуальные контроллеры доставки приложений (ADC).
- Облачные балансировщики и Ingress-контроллеры в Kubernetes.
Что важно
- Проверки здоровья серверов.
- Отказоустойчивость самого балансировщика.
- Защита от атак (в связке с WAF и anti-DDoS).