NodeJS集群将所有请求发送给一个工作者(Windows)

我正在使用Windows 7机器来testingNodeJS中的群集。

代码如下:

var cluster = require('cluster'); var http = require('http'); var numCPUs = require('os').cpus().length; if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', function (worker, code, signal) { console.log('worker ' + worker.process.pid + ' died'); }); cluster.on('listening', function(worker, address) { console.log("A worker with #" + worker.id + " is now connected to " + address.address + ":" + address.port); }); } else { // Workers can share any TCP connection // In this case its a HTTP server http.createServer(function (req, res) { console.log(cluster.worker.id + ' is responding..!!!'); var j = 0; //long running task for (var i = 0; i < 10000000000; i++) { j++; } res.writeHead(200); res.end("hello world\n"); }).listen(8080); } 

当我运行这个代码时,它看起来像所有的请求被发送到最后创build的工人。 所有其余的工作人员都处于闲置状态,而所有的请求都是由最后创build的节点按顺序处理的。

我试图做一些达成,但似乎没有人报道过这一点呢。 我看到了Stack Overflow的post,但是没有解决scheme。 我正在使用节点v0.10.26。

请指向正确的方向。

如果他们有同样的问题,这个答案是为他人。 使用不同的浏览器进行HTTP请求,这将确保不同的工作人员正在使用。

我刚从命令行使用了两个浏览器+ curl。 我有相同的结果: http : //prntscr.com/8fxx4g

但正确的答案是在这里在node.js集群不起作用。 只有一个工人总是回应 :

@dandavis在评论中说是真实的:群集不会执行循环负载平衡,所以只要工作1可用于请求,它将处理它们。