节点集群:为什么所有请求都只由一个工作人员处理?

时间:2013-04-12 12:07:04

标签: javascript multithreading node.js cluster-computing

我在this示例后创建了一个Node.js群集。

我已在我的API调用中放置console.log(cluster.worker.id)来确定哪个工作人员正在接受请求。

所有工作人员都已成功启动(我有4个核心,因此我创建了4个工作人员)但请求总是由一个工作人员处理。

有谁知道为什么会这样?我使用的是Windows 7操作系统,并且拥有0.8.8版本的Node。

1 个答案:

答案 0 :(得分:3)

您没有看到任何工作人员切换,因为Cluster认识到它没有处于高负载状态,并且不会打扰工作人员。当进程处于高负载时,群集将自动进行负载平衡。这是文档所说的内容:

  

当多个进程都accept()在同一个底层上时   资源,操作系统非常负载均衡   有效率的。 Node.js或程序中没有路由逻辑,   并且工人之间没有共享状态。因此,重要的是   设计你的程序,使其不太依赖   用于会话和登录等事物的内存数据对象。