Hoher Durchsatz für FIFO-Warteschlangen in Amazon SQS - 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.

Hoher Durchsatz für FIFO-Warteschlangen in Amazon SQS

FIFO-Warteschlangen mit hohem Durchsatz in Amazon SQS verwalten effizient einen hohen Nachrichtendurchsatz bei gleichzeitiger Einhaltung einer strikten Nachrichtenreihenfolge und gewährleisten so Zuverlässigkeit und Skalierbarkeit für Anwendungen, die zahlreiche Nachrichten verarbeiten. Diese Lösung ist ideal für Szenarien, die sowohl einen hohen Durchsatz als auch eine geordnete Nachrichtenzustellung erfordern.

FIFO-Warteschlangen mit hohem Durchsatz in Amazon SQS sind in Szenarien nicht erforderlich, in denen eine strikte Reihenfolge der Nachrichten nicht entscheidend ist und in denen das Volumen eingehender Nachrichten relativ gering oder sporadisch ist. Wenn Sie beispielsweise über eine kleine Anwendung verfügen, die seltene oder nicht sequenzielle Nachrichten verarbeitet, sind die zusätzliche Komplexität und die Kosten, die mit FIFO-Warteschlangen mit hohem Durchsatz verbunden sind, möglicherweise nicht gerechtfertigt. Wenn Ihre Anwendung die verbesserten Durchsatzfunktionen von FIFO-Warteschlangen mit hohem Durchsatz nicht benötigt, ist die Entscheidung für eine standardmäßige Amazon SQS SQS-Warteschlange möglicherweise kostengünstiger und einfacher zu verwalten.

Um die Anforderungskapazität in FIFO-Warteschlangen mit hohem Durchsatz zu erhöhen, wird empfohlen, die Anzahl der Nachrichtengruppen zu erhöhen. Weitere Informationen zu Nachrichtenkontingenten mit hohem Durchsatz finden Sie unter Amazon-SQS-Service-Quotas im Allgemeine Amazon Web Services-Referenz.

Informationen zu Quotas pro Warteschlange und Strategien zur Datenverteilung finden Sie unter und. Amazon SQS SQS-Nachrichtenkontingente Partitionen und Datenverteilung für hohen Durchsatz für SQS-FIFO-Warteschlangen

Anwendungsfälle für hohen Durchsatz für Amazon SQS FIFO-Warteschlangen

Die folgenden Anwendungsfälle beleuchten die vielfältigen Einsatzmöglichkeiten von FIFO-Warteschlangen mit hohem Durchsatz und verdeutlichen deren Wirksamkeit in verschiedenen Branchen und Szenarien:

  1. Datenverarbeitung in Echtzeit: Anwendungen, die mit Echtzeit-Datenströmen zu tun haben, wie z. B. die Ereignisverarbeitung oder die Erfassung von Telemetriedaten, können von FIFO-Warteschlangen mit hohem Durchsatz profitieren, um den kontinuierlichen Zustrom von Nachrichten zu bewältigen und gleichzeitig deren Reihenfolge für eine genaue Analyse beizubehalten.

  2. E-Commerce-Auftragsabwicklung: Auf E-Commerce-Plattformen, auf denen es entscheidend ist, die Reihenfolge der Kundentransaktionen aufrechtzuerhalten, stellen FIFO-Warteschlangen mit hohem Durchsatz sicher, dass Bestellungen auch während der Haupteinkaufssaison sequentiell und ohne Verzögerungen bearbeitet werden.

  3. Finanzdienstleistungen: Finanzinstitute, die hochfrequente Handels- oder Transaktionsdaten verarbeiten, verlassen sich auf FIFO-Warteschlangen mit hohem Durchsatz, um Marktdaten und Transaktionen mit minimaler Latenz zu verarbeiten und gleichzeitig die strengen regulatorischen Anforderungen für die Bestellung von Nachrichten einzuhalten.

  4. Medienstreaming: Streaming-Plattformen und Medienvertriebsdienste nutzen FIFO-Warteschlangen mit hohem Durchsatz, um die Bereitstellung von Mediendateien und Streaming-Inhalten zu verwalten und so ein reibungsloses Wiedergabeerlebnis für Benutzer zu gewährleisten und gleichzeitig die richtige Reihenfolge der Inhaltszustellung beizubehalten.

Partitionen und Datenverteilung für hohen Durchsatz für SQS-FIFO-Warteschlangen

Amazon SQS speichert FIFO-Warteschlangendaten in Partitionen. Eine Partition ist eine Speicherzuweisung für eine Warteschlange, die automatisch über mehrere Availability Zones innerhalb einer Region repliziert wird. AWS Sie verwalten keine Partitionen. Stattdessen kümmert sich Amazon SQS um die Partitionsverwaltung.

Für FIFO-Warteschlangen ändert Amazon SQS die Anzahl der Partitionen in einer Warteschlange in den folgenden Situationen:

  • Wenn sich die aktuelle Anforderungsrate dem, was die vorhandenen Partitionen unterstützen können, nähert oder dies übersteigt, werden zusätzliche Partitionen zugewiesen, bis die Warteschlange das regionale Kontingent erreicht hat. Informationen zu Kontingenten finden Sie unter Amazon SQS SQS-Nachrichtenkontingente.

  • Wenn die aktuellen Partitionen wenig ausgelastet sind, kann die Anzahl der Partitionen reduziert werden.

Die Partitionsverwaltung wird automatisch im Hintergrund ausgeführt und ist für Ihre Anwendungen transparent. Ihre Warteschlange und Ihre Nachrichten sind jederzeit verfügbar.

Verteilen von Daten nach Nachrichtengruppen-IDs

Um eine Nachricht zu einer FIFO-Warteschlange hinzuzufügen, verwendet Amazon SQS den Wert der Nachrichtengruppen-ID jeder Nachricht als Eingabe für eine interne Hash-Funktion. Der Ausgabewert der Hash-Funktion bestimmt die Partition, in der die Nachricht gespeichert wird.

Das folgende Diagramm zeigt eine Warteschlange, die sich über mehrere Partitionen erstreckt. Die Nachrichtengruppen-ID der Warteschlange basiert auf der Elementnummer. Amazon SQS verwendet eine Hash-Funktion, um zu ermitteln, wo ein neues Element gespeichert werden soll, und zwar in diesem Fall basierend auf dem Hash-Wert der Zeichenfolge item0. Beachten Sie, dass die Elemente in derselben Reihenfolge gespeichert werden, in der sie der Warteschlange hinzugefügt werden. Die Position jedes einzelnen Elements wird durch den Hash-Wert seiner Nachrichtengruppen-ID bestimmt.

Eine Warteschlange erstreckt sich über mehrere Partitionen.
Anmerkung

Amazon SQS ist für die gleichmäßige Verteilung von Elementen auf die Partitionen einer FIFO-Warteschlange optimiert, unabhängig von der Anzahl der Partitionen. AWS empfiehlt, Nachrichtengruppen-IDs zu verwenden, die eine große Anzahl unterschiedlicher Werte haben können.

Optimierung der Partitionsnutzung

Jede Partition unterstützt bis zu 3 000 Nachrichten pro Sekunde bei Stapelverarbeitung oder bis zu 300 Nachrichten pro Sekunde bei Sende-, Empfangs- und Löschvorgängen in unterstützten Regionen. Weitere Informationen zu Nachrichtenkontingenten mit hohem Durchsatz finden Sie unter Amazon-SQS-Service-Quotas im Allgemeine Amazon Web Services-Referenz.

Bei der Verwendung von Stapel-APIs wird jede Nachricht auf der Grundlage des unter Verteilen von Daten nach Nachrichtengruppen-IDs beschriebenen Prozesses weitergeleitet. Nachrichten, die an dieselbe Partition weitergeleitet werden, werden in einer einzigen Transaktion gruppiert und verarbeitet.

Um die Partitionsnutzung für die SendMessageBatch API zu optimieren, AWS empfiehlt, Nachrichten nach Möglichkeit mit denselben Nachrichtengruppen-IDs zu stapeln.

Um die Partitionsnutzung für die ChangeMessageVisibilityBatch APIs DeleteMessageBatch und zu optimieren, AWS empfiehlt, ReceiveMessage Anfragen zu verwenden, bei denen der MaxNumberOfMessages Parameter auf 10 gesetzt ist, und die von einer einzelnen Anfrage zurückgegebenen Empfangs-Handles zu stapeln. ReceiveMessage

Im folgenden Beispiel wird ein Stapel von Nachrichten mit unterschiedlichen Nachrichtengruppen-IDs gesendet. Der Stapel ist in drei Gruppen aufgeteilt, von denen jede auf das Kontingent für die Partition angerechnet wird.

Ein Stapel von Nachrichten mit unterschiedlichen Nachrichtengruppen-IDs wird in Partitionen gespeichert.
Anmerkung

Amazon SQS garantiert nur, dass Nachrichten mit der internen Hash-Funktion derselben Nachrichtengruppen-ID innerhalb einer Stapelanfrage gruppiert werden. Abhängig von der Ausgabe der internen Hash-Funktion und der Anzahl der Partitionen können Nachrichten mit unterschiedlichen Nachrichtengruppen-IDs gruppiert werden. Da sich die Hash-Funktion oder die Anzahl der Partitionen jederzeit ändern kann, können Nachrichten, die an einem Punkt gruppiert sind, später möglicherweise nicht gruppiert werden.