增加 maxSockets
基本
require('http').globalAgent.maxSockets = 25
// You can change 25 to Infinity or to a different value by experimenting
Node.js 默认情况下同时使用 maxSockets = Infinity
(自 v0.12.0 起 )。在 Node v0.12.0 之前,默认值为 maxSockets = 5
(参见 v0.11.0 )。因此,在超过 5 个请求后,它们将排队。如果要并发,请增加此数量。
设置自己的代理
http
API 正在使用 “ 全局代理 ” 。你可以提供自己的代理商。像这样:
const http = require('http')
const myGloriousAgent = new http.Agent({ keepAlive: true })
myGloriousAgent.maxSockets = Infinity
http.request({ ..., agent: myGloriousAgent }, ...)
完全关闭 Socket Pooling
const http = require('http')
const options = {.....}
options.agent = false
const request = http.request(options)
陷阱
-
如果你想要相同的效果,你应该为
https
API 做同样的事情 -
请注意,例如, AWS 将使用 50 而不是
Infinity
。