View a markdown version of this page

Amazon-SQS-Warteschlangentypen - Amazon Simple Queue Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon-SQS-Warteschlangentypen

Amazon SQS unterstützt zwei Arten von Warteschlangen: Standardwarteschlangen und FIFO-Warteschlangen. Ermitteln Sie anhand der folgenden Tabelle, welche Warteschlange Ihren Anforderungen am besten entspricht.

Standard-Warteschlangen FIFO-Warteschlangen

Unbegrenzter Durchsatz — Standardwarteschlangen unterstützen eine sehr hohe, nahezu unbegrenzte Anzahl von API-Aufrufen pro Sekunde und Aktion (SendMessageReceiveMessage, oder). DeleteMessage Aufgrund dieses hohen Durchsatzes eignen sie sich ideal für Anwendungsfälle, in denen große Nachrichtenmengen schnell verarbeitet werden müssen, wie z. B. Datenstreaming in Echtzeit oder umfangreiche Anwendungen. Standardwarteschlangen werden zwar automatisch mit der Nachfrage skaliert, aber es ist wichtig, die Nutzungsmuster zu überwachen, um eine optimale Leistung zu gewährleisten, insbesondere in Regionen mit höherer Arbeitslast.

At-least-once Zustellung — Garantiert mindestens einmal zugestellt, was bedeutet, dass jede Nachricht mindestens einmal zugestellt wird. In einigen Fällen kann es jedoch vorkommen, dass eine Nachricht aufgrund von Wiederholungsversuchen oder Netzwerkverzögerungen mehrmals zugestellt wird. Sie sollten Ihre Anwendung so gestalten, dass sie potenzielle doppelte Nachrichten mithilfe idempotenter Operationen verarbeitet, die sicherstellen, dass die mehrfache Verarbeitung derselben Nachricht den Zustand des Systems nicht beeinträchtigt.

Best-effort Bestellung — Ermöglicht das Bestmögliche, was bedeutet, dass Amazon SQS zwar versucht, Nachrichten in der Reihenfolge zuzustellen, in der sie gesendet wurden, dies jedoch nicht garantiert wird. In einigen Fällen kommen Nachrichten möglicherweise nicht in der richtigen Reihenfolge an, insbesondere bei hohem Durchsatz oder bei der Wiederherstellung nach einem Ausfall. Bei Anwendungen, bei denen die Reihenfolge der Nachrichtenverarbeitung entscheidend ist, sollten Sie die Logik für die Neuanordnung innerhalb der Anwendung übernehmen oder FIFO-Warteschlangen verwenden, um eine strikte Reihenfolge zu gewährleisten.

Beständigkeit und Redundanz — Standardwarteschlangen sorgen für eine hohe Lebensdauer, da mehrere Kopien jeder Nachricht in mehreren Availability Zones gespeichert werden. AWS Dadurch wird sichergestellt, dass Nachrichten auch bei Infrastrukturausfällen nicht verloren gehen.

Zeitlimit für die Sichtbarkeit — Amazon SQS ermöglicht es Ihnen, einen Sichtbarkeits-Timeout zu konfigurieren, um zu steuern, wie lange eine Nachricht nach dem Empfang verborgen bleibt. So wird sichergestellt, dass andere Verbraucher die Nachricht erst bearbeiten, wenn sie vollständig bearbeitet wurde oder der Timeout abgelaufen ist.

Hoher Durchsatz — Wenn Sie Batching verwenden, verarbeiten FIFO-Warteschlangen bis zu 3.000 Nachrichten pro Sekunde pro API-Methode (, oder). SendMessageBatch ReceiveMessage DeleteMessageBatch Dieser Durchsatz basiert auf 300 API-Aufrufen pro Sekunde, wobei jeder API-Aufruf einen Stapel von 10 Nachrichten verarbeitet. Wenn Sie den Hochdurchsatzmodus aktivieren, können Sie auf bis zu 30.000 Transaktionen pro Sekunde (TPS) skalieren, wobei die Reihenfolge innerhalb der Nachrichtengruppen gelockert wird. Ohne Stapelverarbeitung unterstützen FIFO-Warteschlangen bis zu 300 API-Aufrufe pro Sekunde pro API-Methode (, oder). SendMessage ReceiveMessage DeleteMessage Wenn Sie einen höheren Durchsatz benötigen, können Sie über das Support Center eine Kontingenterhöhung beantragen. AWS Informationen zur Aktivierung des Hochdurchsatzmodus finden Sie unterAktivierung eines hohen Durchsatzes für FIFO-Warteschlangen in Amazon SQS.

Exactly-once Verarbeitung — FIFO-Warteschlangen stellen jede Nachricht einmal zu und halten sie verfügbar, bis Sie sie verarbeiten und löschen. Mithilfe von Funktionen wie der inhaltsbasierten Deduplizierung verhindern Sie doppelte Nachrichten, selbst wenn Sie es aufgrund von Netzwerkproblemen MessageDeduplicationId oder Timeouts erneut versuchen.

First-in-first-out Zustellung — FIFO-Warteschlangen stellen sicher, dass Sie Nachrichten in der Reihenfolge erhalten, in der sie innerhalb der einzelnen Nachrichtengruppen gesendet wurden. Indem Sie Nachrichten auf mehrere Gruppen verteilen, können Sie sie parallel verarbeiten und gleichzeitig die Reihenfolge innerhalb der einzelnen Gruppen beibehalten.

Standardzustellung von Warteschlangennachrichten.
Zustellung von FIFO-Warteschlangennachrichten.
Verwenden Sie Standardwarteschlangen, um Daten zwischen Anwendungen zu senden, wenn der Durchsatz entscheidend ist, zum Beispiel:
  • Trennen Sie Live-Benutzeranfragen von intensiver Hintergrundarbeit. Ermöglichen Sie Benutzern das schnelle Hochladen von Medien, während Sie Aufgaben wie Größenänderung oder Kodierung im Hintergrund bearbeiten. So sorgen Sie für schnelle Reaktionszeiten, ohne das System zu überlasten.

  • Ordnen Sie Aufgaben mehreren Worker-Knoten zu. Verteilen Sie eine große Anzahl von Kreditkartenvalidierungsanfragen auf mehrere Worker-Nodes und behandeln Sie doppelte Nachrichten mit idempotenten Operationen, um Verarbeitungsfehler zu vermeiden.

  • Stapeln Sie Nachrichten für die zukünftige Verarbeitung. Stellen Sie mehrere Einträge in die Warteschlange, um sie stapelweise zu einer Datenbank hinzuzufügen. Da die Reihenfolge der Nachrichten nicht garantiert werden kann, sollten Sie Ihr System so einrichten, dass es bei Bedarf eine Verarbeitung außerhalb der Reihenfolge verarbeitet.

Verwenden Sie FIFO-Warteschlangen, um Daten zwischen Anwendungen zu senden, wenn die Reihenfolge der Ereignisse wichtig ist, zum Beispiel:

  • Stellen Sie sicher, dass vom Benutzer eingegebene Befehle in der richtigen Reihenfolge ausgeführt werden. Dies ist ein wichtiger Anwendungsfall für FIFO-Warteschlangen, bei denen die Befehlsreihenfolge entscheidend ist. Wenn ein Benutzer beispielsweise eine Abfolge von Aktionen in einer Anwendung ausführt, stellen FIFO-Warteschlangen sicher, dass die Aktionen in der Reihenfolge verarbeitet werden, in der sie eingegeben wurden.

  • Zeigen Sie den richtigen Produktpreis an, indem Sie Preisänderungen in der richtigen Reihenfolge senden. FIFO-Warteschlangen stellen sicher, dass mehrere Aktualisierungen des Preises eines Produkts eintreffen und nacheinander verarbeitet werden. Ohne FIFO könnte eine Preissenkung nach einer Preiserhöhung verarbeitet werden, wodurch falsche Daten angezeigt werden.

  • Verhindern Sie, dass sich ein Student für einen Kurs anmeldet, bevor Sie sich für ein Konto registriert haben. Durch die Verwendung von FIFO-Warteschlangen stellen Sie sicher, dass der Registrierungsprozess in der richtigen Reihenfolge abläuft. Das System verarbeitet zuerst die Kontoregistrierung und dann die Kursanmeldung, wodurch verhindert wird, dass die Registrierungsanfrage vorzeitig ausgeführt wird.