
Node.js es un entorno de ejecución muy sólido para JavaScript en el servidor. Una de sus ventajas menos conocidas es que puede crear varios procesos hijos mediante Node.js Cluster. En este artículo explicamos qué es, cuándo aporta valor y cómo permite aprovechar de verdad todos los núcleos de una CPU.
¿Qué es Node.js Cluster?
Cluster es un módulo integrado que permite ejecutar varios procesos de trabajo, o workers, dentro de una misma aplicación. Cada worker se ejecuta de forma independiente, aunque todos comparten el mismo puerto del servidor. Así, una aplicación Node.js puede distribuir la carga entre los distintos núcleos de un procesador moderno y responder con más agilidad.
¿Por qué usar Cluster?
- Mejor uso de la CPU: por defecto Node.js trabaja en un único hilo. Con Cluster se crean workers que pueden ejecutarse en núcleos distintos.
- Más capacidad de respuesta: repartir las peticiones entre procesos permite atender más solicitudes simultáneas y reducir los tiempos de espera.
- Mayor continuidad: si un worker falla, el proceso principal puede iniciar otro para que el servicio siga disponible.

Cómo trabajar con Node.js Cluster
La implementación suele seguir estos pasos:
- Cargar el módulo: importa
clusteren tu aplicación Node.js. - Definir el proceso principal: comprueba si el proceso actual es el principal y, si lo es, crea el número de workers que necesitas.
- Crear workers: cada llamada a
fork()inicia un proceso worker independiente. - Compartir el puerto: los workers atienden el mismo puerto y equilibran las solicitudes entrantes.
- Prever fallos: escucha terminaciones inesperadas y sustituye los workers que dejen de funcionar.
Ejemplo de código
Node.js Cluster es una herramienta práctica para mejorar el rendimiento y la eficiencia de servicios Node.js. Al distribuir el trabajo entre varios núcleos, el servidor puede atender más tráfico y recuperarse mejor ante errores puntuales. Gestiona siempre los fallos y los reinicios de los workers para mantener una operación estable.