Предлог в первую очередь.У меня есть узел с экспресс-службой в качестве сервера 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> at JSON.stringify (<anonymous>)<br> at stringify (<---linux-path--->/node_modules/express/lib/response.js:1119:12)<br> at ServerResponse.json (<---linux-path--->/node_modules/express/lib/response.js:260:14)<br> at errorHandler (v/helper/error-handler.js:20:28)<br> at Layer.handle_error (<---linux-path--->/node_modules/express/lib/router/layer.js:71:5)<br> at trim_prefix (<---linux-path--->/node_modules/express/lib/router/index.js:315:13)<br> at <---linux-path--->/node_modules/express/lib/router/index.js:284:7<br> 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, эти запросы будут работать нормально и возвращатьжелаемый результат.
Несколько дополнительных точек:
- API достигают конечной точки отдыха камунды, которая внутренне обращается к серверу postgres.
- пыталась увеличитьОграничение по Posgres для приема более 100 вызовов, даже если это не сработало
- Load протестировала API-интерфейс конечной точки camunda, который я запускаю изнутри через наш API, они хорошо работают до 1000 одновременных вызовов.
- Используя пакет loadtest npm, мы проверили наши API-интерфейсы на нагрузку, которые не работают с более чем 3 одновременными вызовами в качестве конфигурации, несколько вызовов завершаются с ошибкой, менее 3 работает хорошо.[ Точность.мне, Возможная область проблем ]
- В рамках конфигурации узла увеличено server.maxConnections до 10000 , что также, похоже, не решило проблему.
- Приложение работает нормально, если я запускаю узел на локальном компьютере, но запросы не выполняются при развертывании на сервере.[развертывание выполнено с использованием PM2 с кластерами узлов на месте]
Я в порядке, если данные поступают с опозданием, как и ожидалось, но запросы не должны давать сбой.
Любые входы /предложения будут оценены?
Заранее спасибо.
Редактировать - пробовал с другим подходом, как указано ниже, но не повезло
Iсделал мои фронтальные вызовы API синхронными (ранее 50-60 одновременными) и попытался запустить несколько экземпляров веб-приложений в нескольких окнах браузера (я протестировал 6 одновременных экземпляров), чтобы проверить нагрузку и симулировать одновременный доступ пользователей.
Все та же ошибка. В основном сервер Node API не может обрабатывать одновременные вызовы, с 1 или 2 он работает нормально, но не более.Есть ли какие-либо дополнительные настройки для включения этого ???
Будут благодарны любые выводы.Благодаря.