首页 > 解决方案 > AWS Elastic Beanstalk - 实例之间的共享计数器变量

问题描述

我有一个 Python Flask 应用程序在 Elastic Beanstalk 上运行并启用了自动缩放功能。现在我想要一个全局计数器变量,可以由所有正在运行的实例实时访问和更新。

我已经使用 AWS ElastiCache 研究了 Redis,但这对于我的用例来说似乎有点过分了,因为我必须存储一个计数器变量。我还研究了在其中一个 Beanstalk 实例上运行 Redis 的选项,但这是不可行的,因为 Beanstalk 可以在缩减时关闭实例。

实现此功能的最佳方法是什么?有什么方法可以在不使用 ElastiCache 的情况下摆脱困境?

标签: amazon-web-servicesredisamazon-elastic-beanstalkamazon-elasticache

解决方案


您是否考虑过使用Amazon DynamoDB表?

它有原子计数器

您可以使用该UpdateItem操作来实现原子计数器——一个无条件递增的数字属性,而不会干扰其他写入请求。(所有写请求都按照它们接收的顺序应用。)使用原子计数器,更新不是幂等的。换句话说,每次调用时数值都会递增UpdateItem

您可以使用原子计数器来跟踪网站访问者的数量。在这种情况下,您的应用程序将增加一个数值,而不管其当前值如何。


推荐阅读