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

node cluster share data between master and clusters

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

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

如何定义可以在主节点和集群之间共享的变量?

集群只是打开更多的进程(子进程),这样他们就可以列出到同一个端口。为了交流,您需要在他们之间发送消息。这是一个例子 node-cluster-messaging.js