Проверяет знание принципов распределения трафика между серверами.
Балансировщик:
Принимает запросы от клиентов.
Распределяет их между серверами по алгоритму (round-robin, least connections).
Проверяет здоровье серверов (отсекает упавшие).
Обеспечивает отказоустойчивость и масштабируемость.
Принципы работы:
Алгоритмы балансировки:
Round-robin: Поочерёдно отправляет запросы на серверы (Server1, Server2, Server1...).
Least connections: Выбирает сервер с наименьшим числом активных подключений.
Проверка здоровья:
Балансировщик периодически отправляет HTTP GET /health на серверы.
Сервер с ошибками 5xx временно исключается из ротации.
Сессии пользователей:
Для сохранения сессии (например, корзины покупок) используется:
Sticky sessions: Все запросы клиента идут на один сервер.
Общее хранилище сессий: Redis или база данных.
Пример настройки Nginx:
upstream backend {
least_conn; # Алгоритм
server backend1:3000; # Сервер 1
server backend2:3000; # Сервер 2
server backup:3000 backup; # Резервный
}
server {
location / {
proxy_pass http://backend;
}
}Вывод:
Балансировщик — ключевой компонент для высоконагруженных систем.