Node API Server возвращает 500 ошибок при одновременных вызовах - PullRequest
0 голосов
/ 28 марта 2019

Предлог в первую очередь.У меня есть узел с экспресс-службой в качестве сервера API и веб-приложение Angular (7.x), которое отправляет запросы.

В качестве требования мне нужно сделать около 50-60 одновременных вызовов к одному и тому же API, но сдругое тело запроса, которое я реализовал, но несколько вызовов перестают работать, когда я пытаюсь запустить приложение.Ошибка доступна ниже (убрал linunx и URL из информации об ошибке).


<code>config.service.ts:24 2019-03-28T09:30:00.000Z 2019-03-28T09:30:00.000Z
<---url--->:1 POST <---url> 500 (Internal Server Error)

core.js:1673 ERROR Error: Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":{},"lazyUpdate":null},"status":500,"statusText":"Internal Server Error","url":"<--url--->","ok":false,"name":"HttpErrorResponse","message":"Http failure response for <--url--->: 500 Internal Server Error","error":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>TypeError: Converting circular structure to JSON<br> &nbsp; &nbsp;at JSON.stringify (&lt;anonymous&gt;)<br> &nbsp; &nbsp;at stringify (<---linux-path--->/node_modules/express/lib/response.js:1119:12)<br> &nbsp; &nbsp;at ServerResponse.json (<---linux-path--->/node_modules/express/lib/response.js:260:14)<br> &nbsp; &nbsp;at errorHandler (v/helper/error-handler.js:20:28)<br> &nbsp; &nbsp;at Layer.handle_error (<---linux-path--->/node_modules/express/lib/router/layer.js:71:5)<br> &nbsp; &nbsp;at trim_prefix (<---linux-path--->/node_modules/express/lib/router/index.js:315:13)<br> &nbsp; &nbsp;at <---linux-path--->/node_modules/express/lib/router/index.js:284:7<br> &nbsp; &nbsp;at Function.process_params (<---linux-path--->/node_modules/express/lib/router/index.js:635:15
\ n \ n \ n "} в resolPromise (zone.js: 831) в resolPromise (зона.js: 788) в zone.js: 892 в ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask (zone.js: 423) в Object.onInvokeTask (core.js: 3811) в ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask (zone.js: 422) в Zone.push ../ node_modules / zone.js / dist / zone.js.Zone.runTask (zone.js: 195) в изображении сливания) at invokeTask (zone.js: 1744) ---

Теперь для всех этих неудачных запросов, если я возьму на вкладке сети браузера и попытаюсь запустить такие инструменты, как POSTMAN, эти запросы будут работать нормально и возвращатьжелаемый результат.

Несколько дополнительных точек:

  1. API достигают конечной точки отдыха камунды, которая внутренне обращается к серверу postgres.
  2. пыталась увеличитьОграничение по Posgres для приема более 100 вызовов, даже если это не сработало
  3. Load протестировала API-интерфейс конечной точки camunda, который я запускаю изнутри через наш API, они хорошо работают до 1000 одновременных вызовов.
  4. Используя пакет loadtest npm, мы проверили наши API-интерфейсы на нагрузку, которые не работают с более чем 3 одновременными вызовами в качестве конфигурации, несколько вызовов завершаются с ошибкой, менее 3 работает хорошо.[ Точность.мне, Возможная область проблем ]
  5. В рамках конфигурации узла увеличено server.maxConnections до 10000 , что также, похоже, не решило проблему.
  6. Приложение работает нормально, если я запускаю узел на локальном компьютере, но запросы не выполняются при развертывании на сервере.[развертывание выполнено с использованием PM2 с кластерами узлов на месте]

Я в порядке, если данные поступают с опозданием, как и ожидалось, но запросы не должны давать сбой.

Любые входы /предложения будут оценены?

Заранее спасибо.


Редактировать - пробовал с другим подходом, как указано ниже, но не повезло

Iсделал мои фронтальные вызовы API синхронными (ранее 50-60 одновременными) и попытался запустить несколько экземпляров веб-приложений в нескольких окнах браузера (я протестировал 6 одновременных экземпляров), чтобы проверить нагрузку и симулировать одновременный доступ пользователей.

Все та же ошибка. В основном сервер Node API не может обрабатывать одновременные вызовы, с 1 или 2 он работает нормально, но не более.Есть ли какие-либо дополнительные настройки для включения этого ???

Будут благодарны любые выводы.Благодаря.

...