增加 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