En mis próximas entradas en
HispaBigData nos vamos a adentrar en el mundo de
Node.js en una serie de artículos, explicando en que consiste, porque usarlo y explicaremos como crear nuestro servidor para servir paginas Web.
¿Qué es Node.js?
Node.js es un entorno de programación Javascript en el lado de la
capa de servidor, esta basado en el
motor de Javascript de Chrome (
V8). Este entorno cambia la forma de trabajar, ya que esta diseñado en un modelo orientado a eventos, su meta es la creación de aplicaciones altamente escalables, permitiendo crear decenas de miles de conexiones simultaneas en mismo servidor, algo impensable en los entornos mas usados hoy en día como Apache + PHP o TOMCAT + JAVA.
¿Como puede Node.js conseguir ejecutar decenas de miles de peticiones simultaneas en un mismo servidor? Para contestar esta pregunta vamos a tomar como ejemplo el Servidor Web Apache, el cual crea un nuevo hilo por cada conexión cliente-servidor, éstos van consumiendo una cantidad de memoria y a medida que las peticiones van aumentando el rendimiento de nuestro servidor va disminuyendo, debido a que el proceso de creación de un nuevo hilo es bastante costoso, de esta forma ,si nuestro Portal web recibe miles de peticiones concurrentes, debemos balancear dichas peticiones entre diferentes servidores Apache aumentando el coste en infraestructura.
En una aplicación en Node.js solo corre un único hilo de ejecución, por cada conexión recibida, lanza un evento disparador dentro del motor de ejecución (V8), únicamente en el caso de que nuestra aplicación realizase una operación bloqueante, se crearía un nuevo hilo de ejecución, de esta forma podemos conseguir miles de conexiones concurrentes con menor consumo de memoria que en Apache.