Короткий ответ
Балансировка нагрузки — распределение входящих запросов между несколькими инстансами сервиса, чтобы увеличить пропускную способность и обеспечить отказоустойчивость при падении одного инстанса.
Как это работает подробнее
Балансировщик (nginx, HAProxy, облачный LB) принимает запрос и выбирает один из доступных инстансов по алгоритму (round-robin, least connections и т.п.).
Пример кода
config.yaml
upstream backend {
server app1:8000;
server app2:8000;
}Что использовать на практике
- Практика. Несколько инстансов позволяют горизонтально масштабировать обработку и переживать падение одного без простоя всей системы; важно, чтобы инстансы были stateless либо использовали sticky sessions осознанно.
Подводные камни
- Риск. Хранить состояние (сессию пользователя) только в памяти одного инстанса — при балансировке следующий запрос попадёт на другой инстанс и состояние потеряется.