具有弹性 beanstalk 自动缩放的共享 node.js 全局变量
Posted
技术标签:
【中文标题】具有弹性 beanstalk 自动缩放的共享 node.js 全局变量【英文标题】:Shared node.js global vars with elastic beanstalk autoscaling 【发布时间】:2017-05-28 08:37:09 【问题描述】:我有一个在配置了自动缩放的弹性 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】:您需要一个持久性数据库。其他一切都是徒劳的。如果您不将其保存在所有进程都可以访问的地方,那么它就是本地数据,并且很快就会失去同步。全局变量是每个进程的,而不是系统范围的。
您可以使用任何您想要的东西,例如 Redis、像 Memcache 这样的分布式缓存,或者如果您愿意,可以使用来自 Amazon RDS 的更全功能的数据库。如果没有某种集中化,就没有简单的方法来共享数据。
【讨论】:
以上是关于具有弹性 beanstalk 自动缩放的共享 node.js 全局变量的主要内容,如果未能解决你的问题,请参考以下文章
AWS cloudwatch 自定义指标作为弹性 beantalk 自动缩放触发器