Ответ
Возникнет дисбаланс нагрузки, что приведет к:
- Перегрузке одного хоста: высокий CPU/память, увеличение latency, возможные таймауты и ошибки 5xx.
- Недогрузке другого хоста: неэффективное использование ресурсов.
- Деградации общего SLA: система будет работать на пределе возможностей одного узла.
Решение на уровне балансировщика:
-
Алгоритм
least_connections(Nginx/HAProxy): направляет запрос на сервер с наименьшим количеством активных соединений.upstream backend { least_conn; server backend1:8080; server backend2:8080; } -
Алгоритм
weightedс метриками: можно интегрировать балансировщик с системой мониторинга (Prometheus) и динамически менять веса на основе загрузки CPU. -
Очереди задач: для длительных операций (генерация отчетов, обработка видео) я использовал RabbitMQ/Kafka. Запрос попадает в очередь, а воркеры берут задачи по мере готовности, что выравнивает нагрузку.
-
Circuit breaker и health checks: балансировщик автоматически исключает перегруженные ноды, если они начинают отвечать с ошибками или замедлением.