【发布时间】:2017-08-21 19:00:52
【问题描述】:
我和我的团队一直试图解决的问题涉及多个 ec2 实例,每个实例都有自己独立的并行访问同一个 S3 存储桶的权限。 当每个客户端都尝试在上述 s3 存储桶中下载相同的文件时,此问题会作为竞争条件出现。每个客户端都试图读取文件,运行一些业务逻辑,然后删除文件。由于延迟的机会很多,因此会出现竞争条件,并且多个实例最终会运行业务逻辑。
对于工程师如何使用他们的 s3 客户端实现锁定机制,我们将不胜感激。
我们集思广益的方法: 将 .lock 文件上传到 s3 存储桶,其中包含有关当前持有锁的实例的信息。当持有锁的实例完成进程时,它会删除它的锁。 (上载锁定文件时会出现问题 - 锁定机制的竞争条件)。
【问题讨论】:
-
转移 - 这听起来像是 aws lambda 的完美用例 :-)
-
@Malice,你能详细说明一下吗?
-
您的用例听起来像这里给出的,docs.aws.amazon.com/lambda/latest/dg/with-s3.html。
标签: java amazon-s3 race-condition