嗨我正在学习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。在这里我的问题是,如果有两个工作人员一直可用,那么每个用户请求将被处理两次?,提前致谢
答案 0 :(得分:0)
群集模块处理请求并将它们路由到单个worker。
即使每个工作人员始终可用,也只有一个工作人员会收到一个请求。
来源和良好的阅读材料:http://stackabuse.com/setting-up-a-node-js-cluster/和https://nodejs.org/api/cluster.html