我正在尝试构建 nodejs 应用程序,它将利用多核机器(又名集群),我有一个关于会话的问题。我的代码如下所示:
var cluster = exports.cluster = require('cluster');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died. Trying to respawn...');
cluster.fork();
});
} else {
//spawn express etc
}
我的问题是:每次单个用户点击随机节点实例,或者例如他第一次打开页面并点击节点 N4 并且直到他的会话到期之前,他每次请求都点击节点 N4?对于那些不理解我的问题的人,我将尝试解释我担心的问题:用户进入我的页面,他登录节点 N3,然后我将 req.session.userdata 设置为随机数据,他刷新了页面,他点击了节点 N4,我可以从不同的节点访问 req.session.userdata 吗?这意味着用户有机会随机注销,或者我只是不明白使用 express 进行集群是如何工作的?