TechLead
Lección 4 de 8
5 min de lectura
Node.js Avanzado

Clustering en Node.js

Escala procesos Node.js usando múltiples CPU con el módulo cluster

¿Qué es clustering?

Clustering permite crear múltiples procesos Node.js (workers) que comparten el mismo puerto. Así aprovechas todos los núcleos de la CPU.

Ejemplo con cluster

const cluster = require('cluster');
const os = require('os');
const express = require('express');

if (cluster.isPrimary) {
  const cpus = os.cpus().length;
  for (let i = 0; i < cpus; i++) cluster.fork();

  cluster.on('exit', (worker) => {
    console.log('Worker muerto:', worker.process.pid);
    cluster.fork();
  });
} else {
  const app = express();
  app.get('/', (req, res) => res.send('Hola'));
  app.listen(3000);
}

Balanceo y sticky sessions

Para WebSockets o sesiones, puedes necesitar sticky sessions para que un cliente siempre llegue al mismo worker.

Alternativas

  • • PM2 cluster mode
  • • Docker + orquestadores
  • • Load balancers externos

Sigue aprendiendo