NodeJS 集群将所有请求发送给一名工作人员 (Windows)

Anu*_*nup 5 node.js

我正在使用 Windows 7 机器来测试 NodeJS 中的集群。

代码如下:

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

   }
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,看起来所有请求都发送到创建的最后一个工作人员。当所有请求都由按顺序最后创建的节点处理时,所有剩余的工作线程都处于空闲状态。

我试图做一些尝试,但似乎还没有人报告这一点。我在 Stack Overflow 上看到了一个帖子,有同样的问题,但没有解决方案。我正在使用节点 v0.10.26。

请指出我正确的方向。

Anu*_*nup 6

这个答案适用于其他有同样问题的人。使用不同的浏览器发出 HTTP 请求,这将确保使用不同的工作线程。