Desarrollador Node.js: pregunta de entrevista

¿Cuándo usarías clustering en Node.js?

Clustering ejecuta varios procesos Node.js para usar varios núcleos y aislar fallos. Prefiere un orquestador externo cuando exista, conserva estado fuera de workers y drena conexiones al reiniciar.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

El módulo cluster bifurca el mismo servidor en varios procesos que comparten un puerto de escucha, así que un servicio Node puede usar todos los núcleos y un fallo en un worker no tumba a los demás. Encaja en despliegues en bare-metal o VM donde el gestor de procesos es el propio Node. Bajo Kubernetes o una plataforma que ya ejecuta un contenedor por núcleo y reinicia los fallidos, agrupar dentro del contenedor duplica ese trabajo. En cualquier modelo, los workers no deben guardar en memoria sesiones ni caché que otro worker necesite, y los reinicios deben drenar las conexiones en vuelo antes de salir.

Ejemplo

Un monolito en una VM de 8 núcleos corría bajo PM2 en modo cluster con ocho workers, sesiones en Redis y un apagado ordenado que dejaba de aceptar conexiones y esperaba hasta 10 s a que terminaran las solicitudes. Cuando el mismo servicio pasó a Kubernetes corrió un proceso por pod con una petición de CPU de un núcleo y dejó que el autoscaler horizontal añadiera pods.

Errores frecuentes

  • Guardar sesiones o contadores de rate limit en memoria del proceso y obtener comportamiento inconsistente entre workers.
  • Matar workers con SIGKILL durante despliegues y perder solicitudes activas.
  • Ejecutar cluster dentro de un contenedor que ya se planifica por núcleo.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Node.js