Вступить в клуб →
лёгкаявопросHTTP-клиенты, серверы и gRPC

Под нагрузкой сервис упирается в лимит открытых файлов

resp, err := client.Get(pricesURL)
if err != nil {
    return err
}
if resp.StatusCode != http.StatusOK {
    return fmt.Errorf("prices: status %d", resp.StatusCode)
}
defer resp.Body.Close()

Когда сервис цен отвечает ошибками, через несколько минут появляется too many open files. Где ошибка?

  • При ответе не 200 тело не закрывается
  • defer нужно заменить на прямой вызов Close
  • client.Get не переиспользует соединения
  • Лимит открытых файлов в контейнере слишком мал

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела