Salve pessoal, bem… esse é meu primeiro post aqui no blog então por favor deixem suas opiniões e críticas sobre essa publicação no espaço de comentários lá embaixo. Vou tentar esclarecer algumas dúvidas sobre a tecnologia e ao mesmo tempo explicar seu funcionamento em algumas que permeiam a tecnologia em posts curtos e periódicos.
Um dos primeiros pontos a ser abordado é que Node.js não é uma linguagem de programação, então o que é isso? Node.js é uma plataforma baseada na Google V8 Engine ( mesma engine utilizada no Google Chrome ) que roda do lado do servidor escrito por uma equipe liderada por Ryan Dahl em 2009. Tal plataforma disponibiliza uma serie de ferramentas que variam desde um interpretador de linguagem javascript à uma forte API que permite o desenvolvedor trabalhar de forma fácil para criar aplicações em rede altamente escaláveis.
Ok… mas qual a grande diferença entre a infraestrutura fornecida pelo Node.js comparada a servidores como Apache, Tomcat, JBoss dentre outros? Para responder essa pergunta vamos observar o passo-a-passo o funcionamento de ambos.
Outros servidores:
- Cliente faz a requisição;
- Servidor atende e processa a requisição;
- Servidor responde a requisição ao cliente;
- Servidor está pronto para atender uma nova requisição.
Node.js:
- Cliente faz a requisição;
- Servidor passa a requisição para processamento e se disponibiliza para atender a próxima requisição;
- Servidor continua atendendo requisições a medida que elas vão acontecendo;
- Servidor responde as solicitações a medida que seus processamentos vão sendo concluídos.
Como foi descrito, diferente de outros servidores, o Node não trata a requisição como um todo para que ele possa estar disponível para tratar uma nova requisição do cliente, ele simplesmente a recebe, repassa para threadpool do servidor e já está disponível novamente para atender outra requisição do cliente.
Esse tipo de abordagem é o que tem atraído as atenções para a tecnologia, pois assim podem se criar aplicações que atendem uma grande quantidade de requisições (o que muito vantajoso quando se fala de aplicações pra internet) sem que hajam gargalos ou deadlocks em seus processos.
Referências:
IIS is how to handle ASP.NET requests
Node.js Performance Tip of the Week: Event Loop Monitoring
Deixe um comentário