You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PM2集群模式下轮询连接分发机制的疑问

PM2集群模式调度行为的原因解析

你观察到的现象并非PM2对请求处理时长的管控机制导致,核心原因在于Node.js cluster模块的原生轮询逻辑+操作系统TCP连接复用特性,具体拆解如下:

  • 连续调用时的请求分配逻辑
    当你连续发起API请求时,客户端会通过HTTP Keep-Alive特性复用已建立的TCP连接。而Node cluster的round-robin调度仅在新TCP连接建立阶段生效——一旦连接分配给某个worker(比如实例13),后续复用该连接的所有请求都会直接发往这个worker,只要它处于空闲状态,就会持续处理这些请求。

  • 间隔调用后的请求分配逻辑
    当请求间隔超过HTTP Keep-Alive的超时时间(通常为几分钟,由客户端/服务器配置决定),原有TCP连接会被关闭。再次发起请求时,会创建新的TCP连接,此时cluster模块会按照轮询规则分配下一个worker实例(比如实例14),哪怕之前的所有worker都处于空闲状态。

PM2默认完全沿用Node.js cluster模块的原生调度策略,没有额外添加针对请求处理时长的管控机制。如果需要自定义负载均衡逻辑,可以选择:

  • 使用PM2的fork模式替代cluster模式,自行实现请求分发逻辑
  • 引入外部负载均衡工具接管请求调度

内容的提问来源于stack exchange,提问作者Bennison J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:05:42