具有弹性beanstalk自动扩展的共享node.js全局变量

时间:2017-01-13 02:56:56

标签: node.js amazon-web-services express elastic-beanstalk autoscaling

我有一个在弹性beanstalk中运行的node.js应用程序,并配置了自动缩放功能。我们说我有以下代码:

var app = express();

var getCounter = 0;

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

由于我希望getCounter在我的所有实例中都相同,除了在我的数据库中,我还有哪些选项可以存储它?它感觉太过"瞬态"用于存储在数据库中。这会成为放入缓存的候选者吗?

1 个答案:

答案 0 :(得分:2)

您需要一个持久性数据库。其他一切都是徒劳的。如果您不在任何可由所有进程访问的地方继续使用本地数据,那么它很快就会失去同步。全局变量是按进程进行的,而不是系统范围的。

如果您愿意,可以使用您想要的任何内容,例如Redis,分布式缓存(如Memcache)或更全面的Amazon RDS数据库。没有某种集中化,没有简单的方法来共享数据。