Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

224
Vistas
¿Por qué el módulo de clúster de NodeJs no funciona?

Básicamente, estoy construyendo un servidor express y recientemente investigué el tema de escalar aplicaciones NodeJS. Una de las primeras cosas que vi fue el módulo de cluster incorporado para aprovechar todos los subprocesos del procesador de la máquina. Aquí está mi código de la implementación que he hecho:

 import cluster from "cluster"; import { cpus } from "os"; import dotenv from "dotenv"; dotenv.config(); import express, { Express } from "express"; import log from "./logger"; import database from "./database"; import router from "./router"; const app: Express = express(); // Middleware app.use(express.json()); app.use(express.urlencoded({ extended: false })); const port = <number>(<unknown>process.env.PORT); const host = <string>process.env.HOST; const numCPU = cpus().length; if (cluster.isPrimary) { for (let i = 0; i < numCPU; i++) { cluster.fork(); } cluster.on("listening", (worker) => { // Not printing anything console.log(worker.process.pid); }); cluster.on("exit", (worker, code, signal) => { log.error(`Worker ${worker.process.pid} died. Starting a new worker...`); cluster.fork(); }); } else { app.listen(port, host, () => { // Only prints this once. log.info(`Server ${process.pid} listening at http://${host}:${port}`); database(); router(app); }); }

El problema es que el bloque cluster.isPrimary nunca se ejecuta , lo que significa, por supuesto, que el clúster no bifurca ningún otro proceso. Sin embargo, cuando uso cluster.isMaster , todo funciona exactamente como se esperaba. Pero dado que isMaster está en desuso y se reemplaza por isPrimary, eso es lo que estoy tratando de usar, pero simplemente no funciona.

Soluciones que he probado que no funcionan:

  1. Elimine todos los procesos de nodo en mi máquina.
  2. Elimine todo de este archivo principal y deje solo la aplicación barebone y la configuración del clúster.

¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Lo más probable es que sea la versión del nodo que está ejecutando. isPrimary solo está disponible en las versiones 16+ y lo más probable es que tenga la versión LTS que es v14

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hace algún tiempo, cluster.isMaster agregado en NODE versión v0.8.1 está obsoleto desde la versión 16.0.0. Simplemente reemplace el obsoleto cluster.isMaster por cluster.isPrimary (como lo hizo) solo si su versión de NODE es al menos 16.0.0.

Si no conoce su versión, ingrese node -v y presione enter en su terminal. Si necesitas actualizar tu versión de NODE, tienes diferentes opciones dependiendo de tu sistema operativo. En caso de que ejecute Windows o Mac en su PC, puede, por ejemplo, ir al sitio web oficial de NODE y descargar e instalar la versión más reciente: https://nodejs.org/en/download/current/

El fondo cluster.isPrimary devuelve verdadero si el proceso es primario. Por el contrario, puede usar cluster.isWorker para devolver verdadero si el proceso no es primario. Entonces es la negación de cluster.isPrimary .

Muchas publicaciones de blog, artículos y tutoriales aún aplican el cluster.isMaster obsoleto.isMaster. Esto provoca irritaciones entre los usuarios de nodos que tratan por primera vez con la agrupación en clústeres de NODOS.

NODE proporciona información oficial aquí: https://nodejs.org/api/cluster.html#clusterismaster

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda