Wie kann ich eine Zunahme des Nachrichtenrückstands in meiner Amazon SQS-Warteschlange verhindern?
Der Nachrichtenrückstand in meiner Amazon Simple Queue Service (Amazon SQS)-Warteschlange hat zugenommen, und ich möchte einen Anstieg verhindern.
Kurzbeschreibung
Standard- und FIFO SQS-Warteschlangen
Der Nachrichtenrückstand nimmt unter den folgenden Umständen zu:
- Produzenten senden Nachrichten schneller, als die Nachrichten konsumiert werden.
- Verbraucher löschen keine Nachrichten innerhalb der Sichtbarkeits-Zeitüberschreitung. Wenn die SQS-Warteschlange abgefragt wird, erscheinen Nachrichten erneut in der Warteschlange.
FIFO SQS-Warteschlangen
Bei FIFO (First-In-First-Out)-SQS-Warteschlangen kann es für eine Zunahme des Nachrichtenrückstands eine der folgenden Ursachen geben:
- Die Puffergrenze für 120 000 Nachrichten in der FIFO-Warteschlange.
- Eine Nachricht, die zu einer Nachrichtengruppe gehört, bleibt bei einem Verbraucher hängen, der verhindert, dass andere Nachrichten aus derselben Nachrichtengruppe verarbeitet werden.
Lösung
Halte dich an diese bewährten Methoden, um eine Zunahme des Nachrichtenrückstands zu verhindern.
Standard- und FIFO SQS-Warteschlangen
- Stelle die Zeitüberschreitung für die optimale Sichtbarkeit der SQS-Warteschlange ein, damit der Verbraucher Nachrichten löschen kann, nachdem sie innerhalb der Sichtbarkeits-Zeitüberschreitung verarbeitet wurden. Wenn du nicht weißt, wie lange die Verarbeitung einer Nachricht dauert, erstelle einen Heartbeat für den Verbraucherprozess. Gib die anfängliche Sichtbarkeits-Zeitüberschreitung an (z. B. zwei Minuten). Wenn der Verbraucher mehr Zeit benötigt, um die Nachricht zu verarbeiten, verwende den API-Aufruf ChangeMessageVisibility, um die Sichtbarkeits-Zeitüberschreitung zu erhöhen.
- Erhöhe die Stapel-Größe, wenn du ReceiveMessage-API-Aufrufe tätigst. Setze den Parameterwert MaxNumberOfMessages auf mehr als 1 und bis zu einem Maximum von 10.
- Überwache die SQS-Warteschlangenmetrik Ungefähre Anzahl sichtbarer Nachrichten. Anhand dieser Metrik kannst du feststellen, ob Produzenten anfangen, Nachrichten mit einer höheren Rate zu produzieren, als Verbraucher die Nachrichten konsumieren können. Um horizontal zu skalieren, erhöhe die Anzahl der Verbraucher oder Clients, die die SQS-Warteschlange nutzen, oder erhöhe die Anzahl der Threads, die die Warteschlange abfragen.
FIFO SQS-Warteschlangen
120 000 Nachrichtenpuffer
FIFO-Warteschlangen lassen maximal 120 000 Inflight-Nachrichten zu. Zu den Inflight-Nachrichten gehören Nachrichten, die von einem Verbraucher aus einer Warteschlange empfangen, aber noch nicht aus der Warteschlange gelöscht wurden. Wenn du das Kontingent von 120 000 erreichst, gibt Amazon SQS keine Fehlermeldungen zurück.
Eine FIFO-Warteschlange überprüft die ersten 120 000 Nachrichten, um verfügbare Nachrichtengruppen zu ermitteln. Wenn du einen Nachrichtenrückstand in einer einzelnen Nachrichtengruppe hast, kannst du Nachrichten aus anderen Nachrichtengruppen erst verarbeiten, wenn du den Nachrichtenrückstand erfolgreich verarbeitet hast.
Skalierung über Nachrichtengruppen
Nachrichten, die zu derselben Nachrichtengruppe gehören, werden nacheinander verarbeitet, und zwar in der Reihenfolge, in der sie sich auf die Nachrichtengruppe beziehen. Wenn du Nachrichten mit mehreren Nachrichtengruppen-IDs erhältst, versucht Amazon SQS, so viele Nachrichten mit derselben Nachrichtengruppen-ID wie möglich zurückzugeben. Dadurch können andere Verbraucher Nachrichten mit einer anderen Nachrichtengruppen-ID verarbeiten.
Wenn Nachrichten, die zu einer bestimmten Nachrichtengruppen-ID gehören, unsichtbar sind, kann kein anderer Verbraucher Nachrichten mit derselben Nachrichtengruppen-ID verarbeiten. Verbraucher können jedoch Nachrichten von anderen Nachrichtengruppen verarbeiten. Versuche, die Anzahl der Nachrichtengruppen zu erhöhen, bei denen die Reihenfolge nicht wichtig ist.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 5 Monaten
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 8 Monaten