所以我目前有一个使用内置 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/