Проверяет понимание балансировки нагрузки как ключевого механизма распределения трафика между серверами для обеспечения отказоустойчивости и масштабируемости.
Балансировщик нагрузки — это посредник между клиентами и пулом серверов, который решает, на какой именно сервер отправить очередной запрос. Без него один сервер быстро упирается в лимиты по CPU, памяти и сети, а его падение полностью ломает сервис. Балансировщик решает две задачи: распределение нагрузки и отказоустойчивость.
upstream backend {
least_conn;
server 10.0.0.1:8080 weight=3;
server 10.0.0.2:8080;
server 10.0.0.3:8080 backup;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}Здесь Nginx распределяет запросы по трём серверам, отдавая приоритет первому (weight=3), а третий держит как резервный. Если один из основных узлов упадёт, health-check исключит его из пула.
В веб-приложениях с горизонтальным масштабированием, в микросервисах (Kubernetes Ingress, Istio), в базах данных (PgBouncer, HAProxy для реплик), в облаках (AWS ELB, GCP Load Balancer).
Итог: балансировщик нужен всегда, когда сервис работает более чем на одном сервере — он повышает доступность, упрощает масштабирование и позволяет проводить плановые обновления без простоя.