如何通过将其余请求放入队列来限制对我的节点 http 服务器的入站请求量

How to limit the amount of inbound requests to my node http server by putting the rest into a queue

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

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

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

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

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