我正在尝试构建一个 Node.js 应用程序,可以利用多核机器(也就是群集)。我有一个关于会话的问题。我的代码看起来像这样:
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进行集群?