Nodejs Clustering i expressjs sesje
Próbuję zbudować aplikację nodejs, która wykorzysta maszyny wielordzeniowe (klastrowanie a.k.a.) i mam pytanie o sesje. Mój kod wygląda tak:
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
}
Moje pytanie brzmi: za każdym razem, gdy pojedynczy użytkownik trafi przypadkową instancję węzła lub na przykład po raz pierwszy otworzy stronę i trafi do węzła N4 i do czasu wygaśnięcia jego sesji, trafił węzeł N4 na każde żądanie? Dla tych, którzy nie zrozumieli mojego pytania, postaram się wyjaśnić, o co się martwię: użytkownik wchodzi na moją stronę, loguje się na węźle N3, a następnie ustawi req.session.userdata na losowe dane, odświeża i uderzy w Node N4, czy będę mógł uzyskać dostęp do req.session.userdata z innego węzła? Oznacza to, że istnieje szansa na losowe wylogowanie użytkownika lub po prostu nie rozumiem, w jaki sposób klastrowanie z ekspresowymi działa?