我有一个在Elastic Beanstalk上运行的Python Flask应用程序,并且启用了自动缩放。现在,我想要一个全局计数器变量,所有正在运行的实例都可以实时访问和更新该变量。
我已经使用AWS ElastiCache查看了Redis,但是对于我的用例来说,这似乎有些过头了,因为我必须存储一个计数器变量。我还研究了在Beanstalk实例之一上运行Redis的选项,但这不可行,因为Beanstalk可以在缩小规模时关闭实例。
实现此功能的最佳方法是什么?有没有不用ElastiCache的方法吗?
答案 0 :(得分:1)
您是否考虑过使用 Amazon DynamoDB 表?
您可以使用
UpdateItem
操作来实现 atomic counter (原子计数器)—一种无条件递增的数字属性,而不会干扰其他写入请求。 (所有写请求都按照接收顺序进行应用。)使用原子计数器,更新不是幂等的。换句话说,每次您调用UpdateItem
时,数值都会增加。您可以使用原子计数器来跟踪网站的访问者数量。在这种情况下,您的应用程序将增加一个数字值,而不考虑其当前值。