【发布时间】:2018-06-27 07:49:55
【问题描述】:
这是我的情况:
- 当我的服务器收到请求时,它会触发分布式任务,在我的例子中是许多 AWS lambda 函数(peek 值可能是 3000)
- 我需要跟踪每个任务的进度/状态,即挂起、运行、成功、错误
- 我的服务器可能有很多副本
- 即使我的任何服务器副本关闭,我仍然想了解任务进度/状态
我目前的设计:
- 我选择 AWS S3 作为我的助手
- 当任务开始执行时,它会在 S3 上的一个特殊文件夹中创建标记文件,例如正在运行文件夹
- 当任务失败或成功时,它会将标记文件从running文件夹移动到fail文件夹或success文件夹
- 我检查 S3 上的标记文件以检查任务的进度。
问题:
- AWS S3 并发访问有限制
- 我的案子总有一天会超过限额
尝试解决方案:
- 我已尽力减少对 S3 的请求数
- 我不想通过在我的数据库中存储数据来跟踪进度,因为我的数据库已经承受着繁重的工作量。
说实话,在 S3 上使用标记文件来跟踪任务的进度有点奇怪。但是,它以前工作过。
有什么建议吗?
提前致谢!
【问题讨论】:
标签: amazon-web-services amazon-s3 architecture distributed-system