node.js 当达到 maxSockets 时会发生什么?
node.js what happens when maxSockets are reached?
我想知道当达到 maxSockets
时会发生什么?
如果我使用的服务允许我创建自定义 http.Agent
并且我将 maxSockets
指定为 1。当我尝试发出多个并发请求时会发生什么情况?
每个请求都会超出初始块直到初始完成吗?然后套接字将可用于下一个请求?和所有其他人阻止?我当然会这么认为,但无法在文档中找到任何具体内容,而且我是套接字编程的新手。
在使用 maxSockets 之后,额外的 requests get queued 直到一个活动请求完成并且一个套接字被释放以供使用,此时来自队列的待处理请求将被发送到新释放的套接字上.
请注意,这在技术上是排队而不是阻塞 - CPU 和事件循环在此过程中继续做有用的工作。
还请注意,在每个来源 ("host:port") 的基础上(类似于浏览器)有一个 maxSockets 和队列。
我想知道当达到 maxSockets
时会发生什么?
如果我使用的服务允许我创建自定义 http.Agent
并且我将 maxSockets
指定为 1。当我尝试发出多个并发请求时会发生什么情况?
每个请求都会超出初始块直到初始完成吗?然后套接字将可用于下一个请求?和所有其他人阻止?我当然会这么认为,但无法在文档中找到任何具体内容,而且我是套接字编程的新手。
在使用 maxSockets 之后,额外的 requests get queued 直到一个活动请求完成并且一个套接字被释放以供使用,此时来自队列的待处理请求将被发送到新释放的套接字上.
请注意,这在技术上是排队而不是阻塞 - CPU 和事件循环在此过程中继续做有用的工作。
还请注意,在每个来源 ("host:port") 的基础上(类似于浏览器)有一个 maxSockets 和队列。