He estado leyendo sobre el problema C10K, y de particular interés es la parte que se refiere a la E / S asíncrona del servidor. http://www.kegel.com/c10k.html#aio
Creo que esto resume más o menos lo que Node.js hace en el servidor, al permitir que los subprocesos procesen las solicitudes de los usuarios mientras confía en las interrupciones de E / S (eventos) para notificar a los subprocesos los trabajos que se completan, en lugar de que el subproceso sea responsable del Trabajo de CPU completo. El hilo puede continuar con otras cosas (sin bloqueo) y recibir una notificación cuando se realiza un trabajo (por ejemplo, se encuentra un archivo o se comprime un video).
Posteriormente, esto significa que un subproceso está más 'disponible' para los sockets y, por lo tanto, para los usuarios del servidor.
Entonces encontré esto: http://teddziuba.com/2011/10/straight-talk-on-event-loops.html
¡El escritor aquí afirma que aunque el marco controlado por eventos (subprocesos interrumpidos) puede liberar subprocesos, en realidad no reduce la cantidad de trabajo que tiene que hacer una CPU! La razón aquí es que si, por ejemplo, un usuario solicita comprimir un video que cargó, la CPU todavía tiene que hacer este trabajo y se bloqueará mientras lo hace (por simplicidad, olvidemos el paralelismo aquí, a menos que usted ¡conocer mejor!).
Soy un codificador directo, no un administrador del servidor ni nada de eso. Solo me interesa saber: ¿Es Node.js un regalo de los dioses de la 'computación en la nube' o es todo aire caliente, y en realidad no ahorrará a las empresas tiempo y / o dinero al mejorar la escalabilidad?
Muchas gracias.