【发布时间】:2013-07-15 22:13:30
【问题描述】:
我在 Node.js 中基于 express 构建的 Rest api 应用程序中使用集群。
使用集群的 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。
标签: node.js rest resources express