共享 node.js 个具有弹性 beantalk 自动缩放功能的全局变量

Shared node.js global vars with elastic beanstalk autoscaling

我在 elastic 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 在我的所有实例中都相同,所以除了在我的数据库中存储它之外,我还有什么选择?感觉存到db里太"transient"了。这会是放入缓存的候选对象吗?

您需要一个持久性数据库。其他一切都是徒劳的。如果你不把它保存在所有进程都可以访问的地方,它就是本地数据,它很快就会失去同步。全局变量是per-process,不是system-wide。

您可以使用任何您想要的东西,例如 Redis, a distributed cache like Memcache 或更多 full-featured 来自 Amazon RDS 的数据库(如果您愿意)。没有某种集中化就没有简单的方法来共享数据。