gRPC-вызов сервиса остатков висит, пока не закончится терпение пользователя
stock, err := stockClient.GetStock(context.Background(), &pb.StockRequest{Sku: sku})
Сервис остатков иногда зависает на блокировке в базе. Запросы каталога в такие моменты висят минутами, и горутины копятся. Как правильно?
- Передавать контекст с дедлайном от контекста запроса
- Создавать новое gRPC-соединение на каждый вызов
- Вызывать GetStock в отдельной горутине без ожидания
- Включить сжатие сообщений gRPC
