Создание высокопроизводительных Node.js приложение с кластером и узлом WebWorker

Я не у Node.js Master, поэтому я хотел бы иметь больше очков Посмотреть об этом.

Я создаю веб-сервер HTTP Node.js, который должен обрабатывать не только много одновременных соединений, но и длинных рабочих мест. По умолчанию Node.js работает в одном процессе, и если есть кусок кода, который занимает много времени для выполнения любое последующее соединение, должно подождать, пока код не заканчивается тем, что он делает на предыдущем соединении.

Например:

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");

Итак, я думал запустить все длинные рабочие места в отдельных потоках с использованием библиотеки Node-Web Webworker :

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");

и сделать все больше исполнения, я думал, Также использовать кластер , чтобы создать новый процесс узла для каждого ядра CPU.

Таким образом, я ожидаю сбалансировать клиентские соединения через различные процессы с помощью кластера (скажем, 4 процессы узла, если я запускаю его на четырехъядерном), а затем выполнить длинную работу на отдельном Темы с Узел-WebWorker .

Есть что-то не так с этой конфигурацией?

5
задан Mark 9 September 2011 в 05:34
поделиться