使用node.js运行许多并行http请求

我的任务是将一个进程分成许多并行运行的小进程,分发给一些从机。 请求通过HTTP进入服务器,服务器把它分成一些发送给从属机器的subprocess,等待所有的从请求返回响应,然后将聚合结果整理成一个数据对象,作为顶级请求。 我认为node.js会很有用,但是因为它是单线程的,所以我不能确定这是否可行,或者是否会阻止等待每个请求返回,然后再转到下一个请求。 这是可能的node.js? 如果是这样,有人能指出我的方向吗? 即节点模块使用或概述如何完成?

谢谢你的帮助。

您可以手动产生subprocess 。

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

我们期待Web Worker API被实现来处理更高抽象的subprocess

你想阅读关于WebWorkers。 具体来说,你应该阅读http://developer.yahoo.com/blogs/ydn/posts/2010/07/multicore_http_server_with_nodejs/

尝试查看一个多核心服务器pipe理器node.js 集群模块。

如果即使是一个较小的进程中有一个单线程的同步接口也是一个问题。

幸运的是,节点是围绕asynchronous接口devise的。

如subprocesshttp://nodejs.org/docs/v0.4.6/api/child_processes.html#child_process.exec

或http请求http://nodejs.org/docs/v0.4.6/api/http.html#http.request

我认为这篇博客文章可能会对async如何帮助并行执行以及如何执行与node的并行执行感兴趣。

http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/