Kubernetes отбрасывает HTTP-соединение, инициализированное node.js / postgres - PullRequest
0 голосов
/ 08 октября 2018

У меня есть очень простой кусок кода, написанный на node.js, который работает в Kubernetes и AWS.Приложение просто выполняет запрос POST / GET для создания и получения данных из других служб.service1 -> service2-> service3

Service1 получает почтовый запрос и вызывает service2, service2 вызывает postgres DB (используя sequlize) и создает новую строку, а затем вызывает service3, service3 получает данные из DB и возвращает ответна service2 service2 возвращает ответ на service1.

В большинстве случаев это работает, но один раз в 4-5 попыток + параллелизм он сбрасывался, и я получал тайм-аут.проблема в том, что service1 получает ответ обратно (в соответствии с журналами и следами сети), но кажется, что соединение было разорвано где-то между службами, и я получил тайм-аут (ESOCKETTIMEDOUT).

  • Я пытался использовать для замены request.js на node-fetch
  • Я пытался использовать NewRelic / Elastic APM
  • Я пытался использовать node -prof и анализировать егос узлом --prof-process без выводов.

Возможно ли, что Kubernetes отбрасывает мою связь?

1 Ответ

0 голосов
/ 09 октября 2018

Трудно сказать без отладки, но поскольку некоторые соединения теряются, когда вы добавляете больше нагрузки + параллелизма, вполне вероятно, что вам нужно больше реплик в ваших Kubernetes развертываниях и, возможно, корректирующих ресурсов в спецификации контейнера вашего контейнера.

Если это так, вы также можете настроить HPA (Горизонтальный автоскалер) для обработки вашей нагрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...