Вопрос проверяет системное мышление, понимание узких мест веб-приложений и умение действовать в условиях высокой нагрузки.
Сначала нужно понять, где именно возникает узкое место: фронт, бэкенд, БД или сеть. Затем применяют кеширование, ограничение запросов и горизонтальное масштабирование. Часто помогает деградация функционала и асинхронная обработка. Главное — стабилизировать систему, а не сразу оптимизировать всё подряд.
При резком росте нагрузки важно действовать поэтапно и не усугубить ситуацию.
Сначала решают задачу выживания системы.
rate limit на API
ограничение тяжёлых эндпоинтов
временное отключение второстепенных функций
100 req/sec → 429 Too Many Requests
HTTP-кеш (CDN)
серверный кеш (Redis)
кеширование ответов API
// псевдологика
if ($cache->has($key)) {
return $cache->get($key);
}
После стабилизации переходят к снижению нагрузки.
очереди
фоновые задачи
отложенные вычисления
Примеры:
отправка писем
генерация отчетов
интеграции
горизонтальное масштабирование API
балансировщик нагрузки
autoscaling
Важно уметь “ломаться красиво”:
временно отключать сложные фильтры
показывать упрощённые ответы
снижать точность данных
начинать оптимизацию кода без понимания узкого места
игнорировать БД и сеть
При всплеске нагрузки сначала ограничивают и стабилизируют систему, затем разгружают бэкенд и только после этого оптимизируют код и архитектуру.