マルチコア マシン (別名クラスタリング) を利用する 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
}
私の質問は: 1 人のユーザーがランダムなノード インスタンスにヒットするたびに、またはたとえば、最初にページを開いてノード N4 にヒットし、セッションが期限切れになるまで、すべての要求でノード N4 にヒットしますか? 私の質問を理解していない人のために、私が心配していることを説明しようとします: ユーザーが私のページに入り、ノード N3 にログインし、次に req.session.userdata をランダムなデータに設定し、彼はページを開き、彼がノード N4 にアクセスした場合、別のノードから req.session.userdata にアクセスできますか? つまり、ユーザーがランダムにログアウトされる可能性があるということですか、それともエクスプレスを使用したクラスタリングがどのように機能するのか理解していないだけですか?