AWS Elastic Beanstalk-实例之间的共享计数器变量

时间:2019-05-30 20:47:03

标签: amazon-web-services redis amazon-elastic-beanstalk amazon-elasticache

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

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

实现此功能的最佳方法是什么?有没有不用ElastiCache的方法吗?

1 个答案:

答案 0 :(得分:1)

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

它有Atomic Counters

  

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

     

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