0

J'ai une application node.js s'exécutant en haricot élastique avec mise à l'échelle automatique configurée. Disons que j'ai le code suivant:Variables globales node.js partagées avec l'auto-échelonnement de beanstalk élastique

var app = express(); 

var getCounter = 0; 

app.get('*', function(req, res){ 
    getCounter = getCounter + 1; 
    res.send("That was get request " + getCounter); 
}); 

Depuis que je veux getCounter d'être la même dans tous mes cas, quelles options dois-je pour le stocker en plus dans ma base de données? Il se sent trop "transitoire" pour stocker dans le db. Serait-ce un candidat pour mettre dans une cache?

Répondre

2

Vous avez besoin d'une base de données persistante. Tout le reste est futile. Si vous ne persistez pas dans un endroit accessible à tous les processus, ce sont des données locales qui ne seront plus synchronisées. Les variables globales sont par processus, pas à l'échelle du système.

Vous pouvez utiliser tout ce que vous voulez, comme Redis, un cache distribué comme Memcache ou une base de données plus complète d'Amazon RDS si vous préférez. Il n'y a pas de moyen facile de partager des données sans une sorte de centralisation.