amazon-web-services - AWS Elastic Beanstalk - 实例之间的共享计数器变量
问题描述
我有一个 Python Flask 应用程序在 Elastic Beanstalk 上运行并启用了自动缩放功能。现在我想要一个全局计数器变量,可以由所有正在运行的实例实时访问和更新。
我已经使用 AWS ElastiCache 研究了 Redis,但这对于我的用例来说似乎有点过分了,因为我必须存储一个计数器变量。我还研究了在其中一个 Beanstalk 实例上运行 Redis 的选项,但这是不可行的,因为 Beanstalk 可以在缩减时关闭实例。
实现此功能的最佳方法是什么?有什么方法可以在不使用 ElastiCache 的情况下摆脱困境?
解决方案
您是否考虑过使用Amazon DynamoDB表?
它有原子计数器:
您可以使用该
UpdateItem
操作来实现原子计数器——一个无条件递增的数字属性,而不会干扰其他写入请求。(所有写请求都按照它们接收的顺序应用。)使用原子计数器,更新不是幂等的。换句话说,每次调用时数值都会递增UpdateItem
。您可以使用原子计数器来跟踪网站访问者的数量。在这种情况下,您的应用程序将增加一个数值,而不管其当前值如何。
推荐阅读
- amazon-web-services - 我们能否更新 cloudformation 堆栈以将 kinesis 传输流目标配置从 s3 更改为 elasticsearch?
- elasticsearch - filebeat 未在 linux 中启动,并且没有打印日志以进行故障排除
- azure - Azure 用作作业调度程序应用程序
- flutter - 如何在容器父级中将具有行作为子级的列居中
- prolog - Prolog重复元素到多次
- python - 有没有办法在多维列表中找到最高值?
- node.js - NodeJS表单垃圾邮件预防
- sql - 在 SQL Inject 测试的查询号后添加“”的原理是什么?
- c# - 创建一个返回项目数组数组的过滤器
- mongodb - Mongo DB副本集如何为特定集合数据库配置复制