Я не у 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
.
Есть что-то не так с этой конфигурацией?