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

gRPC-вызов сервиса остатков висит, пока не закончится терпение пользователя

stock, err := stockClient.GetStock(context.Background(), &pb.StockRequest{Sku: sku})

Сервис остатков иногда зависает на блокировке в базе. Запросы каталога в такие моменты висят минутами, и горутины копятся. Как правильно?

  • Передавать контекст с дедлайном от контекста запроса
  • Создавать новое gRPC-соединение на каждый вызов
  • Вызывать GetStock в отдельной горутине без ожидания
  • Включить сжатие сообщений gRPC

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

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

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

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