Когда ваш проект растёт, один сервер перестаёт справляться. Даже самый мощный процессор и гигабайты памяти не спасут, если количество запросов растёт лавинообразно. А если этот сервер упадёт — проект умрёт вместе с ним. Решение — балансировка нагрузки и отказоустойчивость.
В этой статье мы подробно разберём:
- Что такое балансировка нагрузки и зачем она нужна.
- Уровни балансировки (L4, L7).
- Алгоритмы распределения трафика.
- Nginx как балансировщик: настройка upstream, health checks, методы распределения.
- HAProxy — более мощный балансировщик.
- Отказоустойчивость: репликация, кластеризация, keepalived, Pacemaker.
- Балансировка баз данных: репликация master-slave, master-master.
- Docker Swarm и Kubernetes для оркестрации.
- Практические примеры и частые ошибки.
