Node.JS传输数据

时间:2015-09-11 16:52:30

标签: javascript node.js cluster-computing

我有几个问题。我希望这不是抽象的。

我正在学习节点包集群的用法。 我的用法如下, 芝加哥数据中心(VPS)中的服务器。 我家的服务器。 希望未来的负载平衡服务器。

我读到的关于包集群的所有内容似乎都是基于在一台机器上使用它的想法。

我的目标是能够在全国范围内的node.js实例之间来回传输数据。我被告知我可以通过使用流来收集这个想法。

这是来自node.js api示例页面的代码片段。

    var cluster = require('cluster');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

   Object.keys(cluster.workers).forEach(function(id) {
    console.log("I am running with ID : "+cluster.workers[id].process.pid);
  });

  cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.process.pid + ' died');
  });
} else {

      //Do further processing.
}

在这种情况下,它似乎在服务器中启动实例。 很明显,我需要能够与远程服务器配合使用的东西。

有人能为我提出任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,那么您就会询问群集模块是否会跨机器启动服务器。群集模块不会这样做,它只适用于您正在使用的计算机。整个网络的负载平衡是一个非常复杂的主题。首先,您需要弄清楚如何来回传输数据。你会使用TCP / IP吗? HTTP?然后,您仍需要在每台计算机上单独设置群集。只有这样,当您的客户需要完成一些工作时,他们才能使用您选择的协议连接到遥控器上的负载均衡器,并发送/接收数据。如果你正在做一个工作池,使用Redis来执行pub / sub是一个来回传输数据的好主意。