Как ограничить количество входящих запросов к http-серверу моего узла, поместив остальные в очередь - PullRequest
2 голосов
/ 30 октября 2019

Таким образом, в настоящее время у меня работает сервер узлов, использующий встроенный модуль http, который выполняет некоторые сложные вычисления ЦП, поэтому я хочу разрешить только 10 входящих запросов одновременно. Я видел людей, некоторые из которых использовали http.globalAgent.maxSockets = 10;, чтобы ограничить количество исходящих соединений, но это все еще разрешало более 10 одновременных подключений к моему серверу

Я также видел людей, использующих server.maxConnections = 10;, но это просто отклоняет любые соединенияпосле 10.

Мне нужен способ ограничить входящих подключений с помощью модуля http, который позволяет мне принимать только 10 открытых подключений одновременно, а затем помещать остальные в какую-то очередь, котораябудет обработан после завершения одного из других подключений. Есть ли простой способ сделать это?

1 Ответ

2 голосов
/ 30 октября 2019

это понятие о регулировании запросов. в экспрессе есть пакет, который вы можете использовать. Попробуйте это:

https://www.npmjs.com/package/express-throttle

и для автономного http-запроса вы можете использовать:

https://github.com/chilts/oibackoff

https://github.com/jhurliman/node-rate-limiter

https://www.npmjs.com/package/simple-rate-limiter

но в вашем случае вам нужно ограничить использование маршрута за период времени. Вы можете использовать: https://github.com/sindresorhus/p-queue

...