2016-03-25 6 views
-1

Может ли кто-нибудь сделать пример кода для меня, используя node.js natives cluster?Node.js Пример кластера

Допустим, у меня есть этот код и хочу, чтобы каждый «Х» был сбалансирован между моими ядрами, как бы я это сделал?

var y = {}; 
var i = 0; 
var X = require('x.js'); 

wss.on('connection', function(ws) { 

console.log("client connected sucessfully"); 

    ws.on('message', function(obj) { 
     for(var a = 0; a < 100; a++){ 
      y[i] = new X(); 
      i++; 
     } 
    }); 
}); 

ответ

1

На кластере узлов есть хороший пример: documentation page. Короче говоря, вы хотите использовать cluster.fork() для создания нового работника. Работник будет выполнять один и тот же код, что делает господин, так что ваш пример стал бы что-то вроде этого:

var y = {}; 
var i = 0; 
var X = require('x.js'); 
if (cluster.isMaster) { 
    for (var worker_num = 0; worker_num < 10; worker_num++) { 
    cluster.fork(); 
    } 
} else { 
    wss.on('connection', function(ws) { 
    console.log("client connected sucessfully"); 
     ws.on('message', function(obj) { 
     for(var a = 0; a < 100; a++){ 
      y[i] = new X(); 
      i++; 
     } 
    }); 
    }); 
} 

Однако на самом деле вам нужно будет намного больше, чем это. Вам нужны функции, такие как автоматические перезагрузки, пульс и т. Д. И т. Д., Поэтому написать хороший код управления кластером - большая задача сама по себе. Я предлагаю использовать какое-то готовое решение pm2 или service-runner

+0

О, я не упоминал об этом, веб-сайт не должен быть разделен. Таким образом, должен быть только один сервер websocket. – FreeZe