我在node.js中的express上構建的Rest api應用程序中使用了集羣。有一個全局對象,其中包含node.js的集羣模塊
Rest API利用集羣的完整代碼是。
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
var counter = {"color":{},"weight":{}};
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
var exitCode = worker.process.exitCode;
console.log('worker ' + worker.process.pid + ' died ('+exitCode+'). restarting...');
cluster.fork();
});
} else {
var express = require("express"),
var msg;
var server = express();
server.use(express.bodyParser());
server.post('/grouper', function (req, res) {
//some update on global counter
});
server.listen(8080);
}
我的問題是有沒有什麼辦法我能有一樣的代碼不同的分叉實例之間所示的計數器對象,使所有的情況下更新相同對象的全局對象?
您可以共享的方式是在進程或其他一些消息協議(如ZeroMQ)之間的「消息」系統。 – moka