給定以下nodejs代碼。當我對localhost:8080運行ab(apache基準測試)測試時,我只看到服務請求的主進程。但是,如果我從主進程中刪除服務器的句柄,那麼我會看到分叉的進程交換進出。我不知道這是否有充分的理由?在主進程和子進程上的服務器上集羣http服務器quandry
var cluster = require('cluster');
var server = require('http').createServer(function(req,res){
res.writeHead(200);
var served = process.env.NODE_WORKER_ID || "master";
console.log("hello world I was served by " + served);
setTimeout(function() {
res.end("hello world I was served by " + served);
}, 1000);
});
if(cluster.isMaster){
for(var i = 0; i < 2; i++){
cluster.fork();
}
server.listen(8080);
}else{
server.listen(8080);
}
小紙條bencmark。這是在Linux機器上 – Maleck13 2012-03-20 20:40:33
請仔細標記。這不是一個[tag:cluster-analysis]問題,而只是一個經典的[tag:load-balancing]。我猜,它也可能更適合serverfault。 – 2012-03-21 07:04:31
@ Anony-Mousse不,它顯然是NodeJS的問題,而不是服務器本身。 – Mustafa 2012-03-22 18:51:37