我被委托将一个进程拆分为许多小进程并行运行,分布在多台从机上。请求通过HTTP发送,服务器将其拆分成多个子进程,并发给从机,等待所有从机请求返回响应,然后将聚合结果汇总为单个数据对象,作为顶级请求的结果返回。我认为node.js可能很有用,但由于它是单线程的,我无法确定是否可能实现,或者它是否会阻塞等待每个请求返回,然后再继续下一个请求。使用node.js可以实现吗?如果可以,请问有人能指点一下方向吗?例如使用哪个node模块或概述如何完成此操作?
感谢任何帮助。
感谢任何帮助。
var util = require('util'),
spawn = require('child_process').spawn,
node = spawn('node', ['slave.js']);
node.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
node.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
node.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
node.stdin.write("do my work!");
你想了解WebWorkers。具体来说,你应该阅读http://developer.yahoo.com/blogs/ydn/posts/2010/07/multicore_http_server_with_nodejs/。
我认为这篇博客文章在异步帮助并行执行方面可能很有趣,并且介绍了如何在Node中进行并行执行。
http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/