我有几个问题。我希望这不是抽象的。
我正在学习 Node 包集群的使用。 我的用法如下, 芝加哥数据中心 (VPS) 中的服务器。 我家有一台服务器。 希望 future 的负载平衡服务器。
我读到的有关软件包集群的所有内容似乎都是基于将其安装在一台机器上的想法。
我的目标是能够在全国范围内的 Node.js 实例之间来回传输数据。有人告诉我,我可以使用流来通过 Cluster 来适应这个想法。
这是来自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.
}
在此实例中,它似乎在服务器内启动实例。 很明显,我需要一些可以与远程服务器一起使用的东西。
有人可以为此提供任何建议吗?
谢谢!
最佳答案
如果我正确理解这个问题,您是在问集群模块是否会跨机器启动服务器。集群模块不会这样做,它只适用于您正在使用的机器。跨网络的负载平衡是一个非常复杂的主题。其一,您需要弄清楚如何来回传输数据。您会使用 TCP/IP 吗? HTTP?那么你仍然需要在每台机器上单独设置集群。只有这样,当您的客户需要完成一些工作时,他们才可以使用您选择的协议(protocol)连接到远程设备上的负载均衡器,并发送/接收数据。如果您正在创建工作池,那么使用 Redis 执行发布/订阅是来回传输数据的好主意。
关于javascript - Node.JS 传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32528472/