2014-12-20 26 views
1

以下代碼片段拋出錯誤。有沒有辦法實現以下功能?如果不是爲什麼無法在nodejs cluster master中創建服務器實例?如何在nodejs集羣中的master中創建服務器實例? (在工作人員和主人)

var cluster = require('cluster'); 
var http = require('http'); 

if (cluster.isMaster) { 

    var numCPUs = require('os').cpus().length; 
    for (var i = 0; i < numCPUs; i++) { 
     cluster.fork(); 
    } 

    // How to create server instance in master? 
    // It is throwing error when I create server like below. 
    http.Server(function(req, res) { 
    res.writeHead(200); 
    res.end("hello worlddddd\n"); 
    }).listen(8000); 
} else { 
    http.Server(function(req, res) { 
     res.writeHead(200); 
     res.end("hello world\n"); 
    }).listen(8000); 

}

+0

你爲什麼需要它?如果你有4個步驟,主進程將創建4個工人。另一個「切斷器」是無用的 – Radar155

+0

我的疑惑是如果我有4個內核,那麼將會創建4個工作者。那麼什麼是「大師」呢?如果我們在像事件處理程序這樣的主人上執行任何操作,那麼它將如何執行?例如,我有一個四核系統。當我控制檯登錄處理器ID時,4個內核有4個PID,而且還有一個PID用於主控。 「Master」來自哪裏如果我只有4個內核(那麼我將擁有5個實例如果我認爲「Master」,但我只有4個內核)。 –

+0

您需要一個主流程來分流您的流程。如果你有4個核心,那麼你將有5個進程,但是第一個進程,主進程將永遠不會做任何事情。你只需要在開始時使用它。而對於你的操作系統來說,擁有4個核心和5個分區(其中一個是主分區)不是問題。 – Radar155

回答

0

,我得到了運行此代碼時,似乎指向地址中的錯誤:端口組合已經在使用之中。更改您的主服務器正在偵聽的端口,並且這應該可以解決錯誤。

相關問題