Sperren eines Best Practices für S3-Objekte?

Ich habe einen S3-Bucket mit einigen S3-Objekten, aus denen mehrere EC2-Instanzen (bei horizontaler Skalierung) abrufen können. Jeder EC2 zieht nacheinander ein Objekt, verarbeitet es und verschiebt es in einen anderen Eimer.

Um sicherzustellen, dass dasselbe Objekt nicht von mehreren EC2-Instanzen verarbeitet wird, benennt meine Java-App es mit einer "gesperrten" Erweiterung um, die dem S3-Objektschlüssel hinzugefügt wird. Das Problem ist, dass "Umbenennen" tatsächlich einen "Zug" ausführt. Daher kann es einige Minuten dauern, bis die großen Dateien im S3-Bucket vollständig umbenannt sind, wodurch der Sperrvorgang ineffektiv wird.

Hat jemand eine bewährte Methode, um das zu erreichen, was ich versuche?

Ich habe überlegt, SQS zu verwenden, aber diese "Lösung" hat ihre eigenen Probleme (Bestellung nicht garantiert, Möglichkeit, dass Nachrichten mehr als einmal zugestellt werden und mehr als eine EC2 dieselbe Nachricht erhält).

Ich frage mich, ob das Setzen eines "gesperrten" Headers ein schnellerer "Sperr" -Prozess wäre.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage