节点集群在主节点和集群之间共享数据

时间:2017-11-17 08:55:24

标签: javascript node.js cluster-computing

我开始使用节点集群包,我很快发现主节点和集群之间没有共享数据。让我们举个例子:

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

var my_array = [];

if(cluster.isMaster) {
    for (var i = 0; i < numCPUs && i < 8; i++) {
        cluster.fork();
    }

    my_array.push('test');

    cluster.on('exit', function(worker, code, signal) {
        console.log('worker ' + worker.process.pid + ' died');
    });
} else {
    setInterval(function() {
        console.log(my_array); // my_array is always empty
    }, 500);
}

如何定义可在主服务器和集群之间共享的变量?

1 个答案:

答案 0 :(得分:1)

集群只需打开更多进程(子进程)就可以将它们列出到同一个端口。为了沟通你需要所以在他们之间发送按摩。这是一个例子 node-cluster-messaging.js