No soy un maestro de node.js, por lo que me gustaría tener más puntos de vista sobre esto.Creación de una aplicación node.js de alto rendimiento con clúster y nodo-webworker
Estoy creando un servidor web HTTP node.js que debe manejar no solo muchas conexiones simultáneas sino también trabajos de larga ejecución. Por defecto node.js se ejecuta en un proceso, y si hay un fragmento de código que tarda mucho tiempo en ejecutarse, cualquier conexión posterior debe esperar hasta que el código finalice lo que está haciendo en la conexión anterior.
Por ejemplo:
var http = require('http');
http.createServer(function (req, res) {
doSomething(); // This takes a long time to execute
// Return a response
}).listen(1337, "127.0.0.1");
Así que estaba pensando para ejecutar todos los trabajos de larga ejecución en hilos separados utilizando el node-webworker biblioteca:
var http = require('http');
var sys = require('sys');
var Worker = require('webworker');
http.createServer(function (req, res) {
var w = new Worker('doSomething.js'); // This takes a long time to execute
// Return a response
}).listen(1337, "127.0.0.1");
Y para que todo el asunto con más prestaciones, lo También se pensó usar cluster para crear un nuevo proceso de nodo para cada núcleo de CPU.
De esta manera espero equilibrar las conexiones del cliente a través de diferentes procesos con cluster
(digamos 4 procesos de nodo si lo ejecuto en un núcleo cuádruple), y luego ejecutar el trabajo de larga ejecución en hilos separados con node-webworker
.
¿Hay algún problema con esta configuración?
Última actualización hace 2 años –