Red de conocimiento informático - Espacio del host - ¿Por qué debería recomendar NodeJS a los ingenieros de backend?

¿Por qué debería recomendar NodeJS a los ingenieros de backend?

Un artículo de divulgación científica que me cuenta sobre Node.js y por qué, como ingeniero de front-end, recomiendo Node.js a los ingenieros de back-end.

"Node.js es un entorno de ejecución de JavaScript del lado del servidor que no bloquea y está controlado por eventos. Node.js utiliza el motor V8. De manera similar, Node.js implementa servicios web similares a Apache y nginx. , permitiéndole crear una aplicación web basada en JavaScript a través de él."

Creo que no se trata solo de Node.js. Antes de introducir cualquier tecnología nueva, debemos aclarar algunas cuestiones:

Nosotros. ¿Qué problemas has encontrado?

¿Qué problemas resuelve esta nueva tecnología? ¿Se adapta a los problemas que encontramos?

Entre las diversas soluciones a nuestros problemas, ¿cuáles son las ventajas de esta nueva tecnología?

¿Cuáles son los nuevos problemas que trae consigo el uso de las nuevas tecnologías? ¿Hablan en serio? ¿Podemos solucionarlos?

Nuestro problema: el bloqueo del lado del servidor

Node.js está diseñado para resolver el problema del bloqueo del servidor. Aquí hay un código simple para explicar qué es el bloqueo:

Código Js:

// Según el ID, busque el nombre en la tabla Personas de la base de datos.

var name = db.query("Seleccione el nombre de la persona con id=1");

//El proceso espera a que se complete la consulta de datos y luego utiliza los resultados de la consulta.

Salida("nombre")

El problema con este código es que entre las dos declaraciones anteriores, durante todo el proceso de consulta de datos, el proceso del programa actual a menudo solo está esperando la result Devuelve, provocando que el proceso se bloquee. Para aplicaciones de red con alta concurrencia y líneas con uso intensivo de E/S, por un lado, el proceso está en estado de espera durante mucho tiempo. Por otro lado, constantemente se agregan nuevos procesos para poder responder a nuevas solicitudes. Tal desperdicio hará que el QPS admitido por el sistema sea mucho menor que el QPS admitido por el servicio de datos back-end, convirtiéndose en un cuello de botella del sistema. Y dichos sistemas son particularmente vulnerables a ataques de enlaces lentos (donde el cliente deliberadamente no recibe o ralentiza los datos recibidos, prolongando así el tiempo de espera del proceso).