Ответ
Балансировщик нагрузки (Load Balancer, LB) — это сетевой компонент (аппаратный или программный), который распределяет входящий клиентский трафик между группой серверов для обеспечения масштабируемости, отказоустойчивости и эффективного использования ресурсов.
Основные задачи:
- Распределение запросов: Использование алгоритмов (Round Robin, Least Connections, IP Hash).
- Проверка здоровья (Health Checks): Регулярные опросы серверов и исключение неработающих из ротации.
- Обеспечение сессионной устойчивости (Sticky Sessions): Направление запросов одного пользователя на один и тот же backend-сервер.
- Терминирование SSL: Разгрузка backend-серверов от задач шифрования/дешифрования.
Пример конфигурации Nginx как балансировщика:
http {
upstream backend_servers {
# Алгоритм Least Connections
least_conn;
server 10.0.1.10:8080;
server 10.0.1.11:8080;
server 10.0.1.12:8080 backup; # Резервный сервер
}
server {
listen 80;
location / {
proxy_pass http://backend_servers;
}
}
}
Типы балансировщиков:
- L4 (Transport Layer): Работает с IP-адресами и портами (TCP/UDP). Быстрый, но без анализа содержимого запроса.
- L7 (Application Layer): Работает с данными уровня приложения (HTTP-заголовки, cookies). Позволяет принимать более интеллектуальные решения о маршрутизации.
Использование: Веб-фермы, микросервисные архитектуры, кластеры баз данных.