В своем проекте я использую NATS JetStream, использую публикацию для потоковой передачи rps-запросов, это значит, что клиент будет ждать ответа от сервера, но часто возникает ошибка тайм-аута, в чем проблема, не понятно.
Я начал собирать метрики с помощью node_exporter и просматривать их в Grafana. На панели ошибок TCP вы можете увидеть множество ошибок со следующим описанием: TCPOFOQueue — уровень TCP получает пакет, не соответствующий порядку, и у него достаточно памяти, чтобы поставить его в очередь.
Более того, эти ошибки совпадают по времени с ошибками, которые возникают в моем приложении.
Не могли бы вы подсказать, где копать, чтобы найти и устранить эту проблему?
Я отправляю обычный запрос через клиент Python для NATS и получаю исключение
nats: timeout
await connection.request(
message=b"some_message",
subject="order.cancel",
timeout=1
)
Сервисы задеплоины в докер контейнеры с сетью хоста.
Я думаю, проблема не в Nats Server или VPS, потому что я перазвернул, проблема все еще происходит. До переустановки VPS я пытался подключиться к Nats Server с моего локального ПК и отправлять запросы, иногда я получаю таймауты :) НО после переустановки VPS я пытаюсь сделать то же самое и не получаю таймауты и не вижу ошибок в графике Grafana (я делаю ~100 rpc)
После этого можно сделать вывод, что проблема не в nats-py (я думал, что отправка большого количества сообщений одновременно сопровождается ошибкой в реализации nats для python)
Теперь я еще больше запутался