node限制异步请求数量
发布于 8 年前 作者 zp1996 3280 次浏览 来自 问答

node中的maxSockets默认是Infinity,把这个值改成相应的值,比如1000可以达到控制异步请求的数量,但是这样有什么问题呢?朴灵大大的 bagpipe中的:

尽管http模块自身有http.Agent这样的玩意,用于控制socket的数量,但是通常我们的异步API早就封装好了。改动API的内部agent是不现实的,那么我们自己在逻辑层实现吧。

该怎么理解呢?

1 回复

因为你要通过用默认的方式去做,需要直接在处理 http 请求的已经封装好的异步api中,给 options 属性增加一个 new http.Agent({maxSockets:xxx}) 来满足需求,这样会破坏原有的api,而且你很难改的全面 相对来说,重构时我们可能希望基于现有的异步 api 再进行一层封装,这样出问题的概率也比较低。bagpipe 中基本上是朴老师自己设置了一个队列,来实现限制 socket 并发数量的,详细了解其实可以直接看看 bagpipe 的具体实现~

回到顶部