node.js - 如何通过将剩余的入站请求放入队列来限制对我的 Node http 服务器的入站请求数量

标签 node.js httpserver

所以我目前有一个使用内置 http 模块运行的 Node 服务器,它正在执行一些繁重的 CPU 计算,所以我只想一次允许 10 个入站 请求。我看到有人使用 http.globalAgent.maxSockets = 10; 来限制出站连接数量,但这仍然允许超过 10 个并发连接到我的服务器

我还看到人们使用 server.maxConnections = 10; 但这直接拒绝 10 之后的任何连接。

我想要一种使用 http 模块来限制入站连接的方法,该模块允许我一次只接受 10 个打开的连接,然后将其余的放入某种队列中,该队列将被处理一次其他连接完成。有没有简单的方法可以做到这一点?

最佳答案

这个概念是关于限制请求的。有一个 express 包裹,你可以使用它。试试这个:

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

关于node.js - 如何通过将剩余的入站请求放入队列来限制对我的 Node http 服务器的入站请求数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58627035/

相关文章:

database - Redis - 发布/订阅内部

javascript - 如何将我的前端与后端绑定(bind)(形成接触)

ios - 在 iOS 后台运行一个 Http 服务器

c - fprintf 失败,但 fputc 工作正常?

redis - 用于键值查找的简单 HTTP 服务器

node.js - 使用 Backbone、Express 和 Mongoose 支持和反对

javascript - node-mysql connection.query() 返回未定义

node.js - 写入 Node WebSocket 是阻塞还是非阻塞?

c - 如何使用gzip压缩和分块传输编码修复来自c套接字http服务器的图像中的怪异变形

javascript - 奇怪的 JQuery 错误 "code 501, message Unsupported method OPTIONS"