¿Cómo funciona el modelo IO sin bloqueo de subproceso único en NodeJS?

Node.js es un entorno de tiempo de ejecución de JavaScript que se ejecuta en el motor Chrome V8 y se usa para secuencias de comandos del lado del servidor. Toma las requests de los usuarios, las procesa y devuelve las respuestas a los usuarios correspondientes.

Algunas características importantes de Node.js son:

  • Se basa en una arquitectura de subproceso único: dado que node.js recibe múltiples requests de múltiples usuarios, ejecuta un comando a la vez. Debido a esto, puede manejar requests de clientes concurrentes de manera muy efectiva y tiene un buen rendimiento.
  • Utiliza un modelo de E/S no basado en bloqueos y controlado por eventos: cada vez que se inicia el servidor de Nodes, inicia ciertas variables y funciones y luego espera a que ocurran los eventos, cada vez que se detecta un evento, se asigna una función de devolución de llamada a ese evento en particular. La arquitectura basada en eventos hace que el servidor sea altamente escalable y no espera a que una API devuelva datos, pasa a la siguiente API inmediatamente para la siguiente solicitud. La operación sin bloqueo significa que el servidor no se bloqueará para una solicitud. La llamada sin bloqueo solo inicia la operación y la respuesta se proporciona más tarde, mientras tanto, puede continuar con otras requests del cliente.

Ejemplo: si recibimos requests de dos usuarios A y B. Con IO sin bloqueo podemos iniciar la solicitud para A y luego inmediatamente para B sin esperar la respuesta a la solicitud de A. Por lo tanto, podemos decir con la ayuda de no -Bloqueando IO podemos eliminar el uso de subprocesos múltiples ya que el servidor del Node puede manejar múltiples requests simultáneamente.

Funcionamiento de E/S sin bloqueo de un solo subproceso:

  • Cuando el cliente envía una solicitud al servidor, esta solicitud se denomina evento. Todas estas requests se almacenan en una cola de eventos. El subproceso único presente en el bucle de eventos asigna esta solicitud a uno de los subprocesos presentes en el grupo de subprocesos internos.
  • Este subproceso lee la solicitud del cliente, procesa la solicitud, realiza cualquier operación de E/S de bloqueo si es necesario y prepara la respuesta final para enviarla al servidor. El bucle de eventos envía esta respuesta al cliente respectivo.
  • El bucle de eventos recibe infinitamente requests y las procesa.
  • No hay necesidad de múltiples subprocesos debido a Event Loop. Debido a este bucle de eventos y al concepto de subproceso único, node.js usa menos recursos y memoria.

Referencia: https://www.geeksforgeeks.org/introduction-to-nodejs/

Publicación traducida automáticamente

Artículo escrito por harshitapatil21 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *