Балансировщик нагрузки (Load Balancer) — это такая прослойка между пользователями и вашими серверами, которая решает, на какой именно сервер в данный момент отправить входящий запрос. Идея простая: не заваливать один-единственный сервер, а распределять нагрузку так, чтобы система жила долго и счастливо.
По сути, load balancer — ключевой элемент любой масштабируемой инфраструктуры. Он смотрит на поток запросов и раздаёт их по доступным бэкендам по заданному алгоритму: кому-то удобен round robin (по очереди), где-то важнее least connections (наименее загруженный сервер), иногда используют IP hash, чтобы один и тот же пользователь стабильно попадал на один и тот же узел.
Балансировка нагрузки нужна именно в моменты, когда трафик растёт или ведёт себя непредсказуемо. Если один сервер падает или начинает тормозить, балансировщик просто перестаёт слать на него запросы и переводит трафик на живые машины. За счёт этого сервис продолжает работать, а пользователи часто даже не замечают, что что-то случилось.
В веб-проектах очень часто роль балансировщика выполняет NGINX, особенно в связке с несколькими приложениями или микросервисами. В облаках есть свои решения, вроде AWS Elastic Load Balancer. В крупных корпоративных сетях до сих пор популярны железные устройства, например балансировщики F5 — отдельные «коробки» под эту задачу.
Load balancing в целом используется в дата-центрах, в облачных платформах, при построении отказоустойчивых и распределённых систем — везде, где один сервер уже не справляется или его отказ критичен.
