所有工作人员(子进程)都处理相同的工作集

时间:2017-04-19 13:16:30

标签: node.js express

嗨我正在学习nodejs而且我对集群模块更加困惑,好吧到了,Master创建了worker,在我的情况下我使用32位windows操作系统,所以我提供了“2工作人员”。通过考虑以下简单程序

var cluster = require('cluster');  
var os      = require('os');
var numCPUs = os.cpus().length;

console.log("start");

if (cluster.isMaster) {  
    for (var i = 0; i < numCPUs; ++i) {
      cluster.fork();
     }
 } 
 console.log(cluster.isMaster? "I'm Master":"I'm worker");

输出

start
I'm Master
start 
I'm worker
start
I'm worker

通过谷歌搜索我发现Master将创建worker并将传入的请求分配给可用的worker。在这里我的问题是,如果有两个工作人员一直可用,那么每个用户请求将被处理两次?,提前致谢

1 个答案:

答案 0 :(得分:0)

群集模块处理请求并将它们路由到单个worker。

即使每个工作人员始终可用,也只有一个工作人员会收到一个请求。

来源和良好的阅读材料:http://stackabuse.com/setting-up-a-node-js-cluster/https://nodejs.org/api/cluster.html