Archivo de la etiqueta: ExpressJS

Cluster en NodeJS con ExpressJS

expressnodejs

Trabajar con Cluster es una excelente forma de mejorar el rendimiento de nuestras aplicaciones. Nodejs es mono-proceso, por lo que no podemos por ejemplo aprovechar de forma eficiente una máquina con varios nucleos. Ahora veremos como hacerlo.
Primero creamos una simple aplicación nodejs con expressjs.

[javascript]
var express = require(‘express’);
var app = express();

app.get(‘/’, function (req, res) {
res.send(‘Hello World!’);
});

app.listen(3000);
console.log(‘Application running!’);
[/javascript]

Instalamos la librería “cluster”.

sudo npm install cluster

Luego lo que hacemos es levantar un folk (proceso) por cada cpu que tenga nuestra máquina.

[javascript]
var cluster = require(‘cluster’);

if(cluster.isMaster){
var cpuCount = require(‘os’).cpus().length;
for(var i = 0; i < cpuCount; i += 1){
cluster.fork();
}
}else{
var express = require(‘express’);
var app = express();

app.get(‘/’, function (req, res) {
res.send(‘Hello World!’);
});

app.listen(3000);
console.log(‘Application running!’);
}
[/javascript]

Y listo! Y probar como anda ahora 😉
Ahora bien, si uno de nuestros “trabajadores” muere, podemos reemplazarlo fácilmente.

[javascript]
if(cluster.isMaster){

cluster.on(‘exit’, function(worker){
console.log(‘Worker ‘ + worker.id + ‘ died!’);
cluster.fork();
});
}else{
[/javascript]

Puedes encontrar la documentación completa en la página oficial de Nodejs.
Código github
Saludos!