View a markdown version of this page

Amazon SQS: Faire Warteschlangen - 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: Faire Warteschlangen

Amazon SQS Fair Queues mindert automatisch die Auswirkungen von Noisy-Neighbor-Störungen in Multi-Tenant-Warteschlangen, die Nachrichten von mehreren logischen Entitäten wie Kunden, Client-Anwendungen oder Nachrichtentypen enthalten. In diesen Umgebungen mit gemeinsam genutzten Warteschlangen ist die Verweilzeit eine wichtige Leistungskennzahl. Dabei wird die Gesamtzeit gemessen, die Nachrichten von der Ankunft bis zur Verarbeitung in einer Warteschlange verbringen. Wenn ein Mandant einen Rückstand in der Warteschlange erzeugt, indem er mehr Nachrichten veröffentlicht, als das System verarbeiten kann, minimieren faire Warteschlangen die Auswirkungen auf die Verweildauer anderer Mandanten.

Stetiger Zustand

Das folgende Diagramm zeigt eine Warteschlange mit mehreren Mandanten, die Nachrichten von vier verschiedenen Mandanten (mit A, B, C und D bezeichnet) enthält. Die Warteschlange arbeitet in einem stabilen Zustand, und es gibt keinen Nachrichtenrückstand, da Verbraucher Nachrichten erhalten, sobald sie in der Warteschlange erscheinen. Alle Mieter haben geringe Verweilzeiten. In diesem stabilen Zustand sind nicht alle Verbraucherkapazitäten voll ausgelastet.

Eine mandantenfähige Warteschlange, die Nachrichten von vier verschiedenen Mandanten (dargestellt durch A, B, C, D) enthält. Die Warteschlange befindet sich in einem stabilen Zustand, wobei die Nachrichten während der Übertragung gleichmäßig auf die Mandanten verteilt werden, ohne Rückstau und nur eine geringe Verweilzeit für alle Mandanten besteht.

Lärmbelästigung durch die Nachbarn

Störende Nebengeräusche treten auf, wenn ein Mandant in einer Warteschlange mit mehreren Mandanten einen Rückstand erzeugt, wodurch die Verweildauer der Nachrichten für alle anderen Mandanten verlängert wird. Ein Mandant kann zu einem lauten Nachbarn werden, wenn er eine größere Menge an Nachrichten sendet als andere Mieter oder wenn Verbraucher länger brauchen, um Nachrichten von diesem bestimmten Mandanten zu verarbeiten.

Dieses Diagramm zeigt, wie der erhöhte Verkehr von Mandant A zu einem Rückstau in der Warteschlange führt. Die Verbraucher sind damit beschäftigt, nur die Nachrichten von Mandant A zu verarbeiten, während Nachrichten von anderen Mandanten im Backlog warten, was zu längeren Verweilzeiten für alle Mandanten führt.

Dies hat zur Folge, dass Mandant A den Verkehr erhöht und ein Rückstau in der Warteschlange entsteht. Die Nachrichten von Mandant A sind im Status „Während der Fahrt“ überrepräsentiert, und Nachrichten von anderen Mandanten bleiben im Backlog hängen, was zu einer längeren Verweildauer führt.

Schadensbegrenzung durch faire Warteschlangen

Amazon SQS erkennt störende Nachbarn, indem es die Nachrichtenverteilung zwischen den Mandanten während der Verarbeitung überwacht (Status „während der Übertragung“). Wenn ein Mieter im Vergleich zu anderen eine unverhältnismäßig große Anzahl an Nachrichten während des Fluges hat, identifiziert Amazon SQS diesen Mandanten als lauten Nachbarn und priorisiert die Nachrichtenzustellung für andere Mieter. Dieser Ansatz reduziert die Auswirkungen auf die Verweildauer der anderen Mieter.

Dieses Diagramm zeigt, wie Amazon SQS Fair Queues das Problem Noisy Neighbor löst. Wenn ein Mandant (Mandant A) laut wird, priorisiert Amazon SQS die Rückgabe von Nachrichten von anderen Mandanten (B, C und D). Diese Priorisierung trägt dazu bei, niedrige Verweilzeiten für stille Mieter (Mandanten B, C und D) aufrechtzuerhalten, während die Verweildauer für die Nachrichten von Mandant A erhöht wird, bis der Warteschlangenrückstand aufgebraucht ist, ohne dass sich dies auf andere Mieter auswirkt.

Eine Veranschaulichung, wie durch faire Warteschlangen das Problem der lauten Nachbarn gelöst wird, indem der Status während des Fluges überwacht wird. Wenn Mieter A laut wird, versucht SQS, Nachrichten von anderen Mietern (B, C, D) zurückzugeben, sodass Nachrichten während des Fluges gleichmäßig auf die Mieter verteilt werden. Die Verweildauer für Mandanten (B, C, D) bleibt niedrig, während die Verweildauer für die Nachrichten von Mandant A erhöht wird, bis der Warteschlangenrückstand aufgebraucht ist.
Anmerkung

Amazon SQS begrenzt die Nutzungsrate pro Mandant nicht. Es ermöglicht Verbrauchern, Nachrichten von lauten Nachbarnachbarn zu empfangen, wenn genügend Kapazitäten vorhanden sind und in der Warteschlange keine weiteren Nachrichten zurückgesendet werden können. Wie Amazon SQS SQS-Standardwarteschlangen ermöglichen faire Warteschlangen einen praktisch unbegrenzten Durchsatz, und die Anzahl der Mandanten, die Sie in Ihrer Warteschlange haben könnten, ist unbegrenzt.

Einzelheiten dazu, wie Amazon SQS störende Nachbarn erkennt und die Reihenfolge der Nachrichtenzustellung verwaltet, finden Sie unter So funktionieren faire Warteschlangen in Amazon SQS.

Wie verwendet man faire Warteschlangen

Um faire Warteschlangen zu ermöglichen, sollten Nachrichtenproduzenten eine Mandanten-ID hinzufügen, indem sie bei ausgehenden Nachrichten einen MessageGroupId Wert setzen:

// Send message with tenant identifier SendMessageRequest request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody(messageBody) .withMessageGroupId("tenant-123"); // Tenant identifier sqs.sendMessage(request);

Die Fairness-Funktion wird automatisch in allen Amazon SQS SQS-Standardwarteschlangen für Nachrichten mit der Eigenschaft angewendet. MessageGroupId Sie erfordert keine Änderung des Verbrauchercodes, sie hat keine Auswirkungen auf die API-Latenz und ist nicht mit Durchsatzbeschränkungen verbunden.

Anmerkung

MessageGroupIdhat bei Standardwarteschlangen mit fairen Warteschlangen nicht das gleiche Verhalten wie MessageGroupId bei FIFO-Warteschlangen. MessageGroupIdWird in Standardwarteschlangen nur als Mandanten-ID für faire Warteschlangen verwendet und erzwingt keine Nachrichtenreihenfolge. Einzelheiten zu MessageGroupId FIFO-Warteschlangen finden Sie unter Verwenden der Nachrichtengruppen-ID mit Amazon SQS FIFO-Warteschlangen.

Wann sollten faire Warteschlangen verwendet werden

Erwägen Sie, faire Warteschlangen zu verwenden, wenn alle der folgenden Punkte auf Ihre Warteschlange zutreffen:

  • Die Warteschlange ist mandantenfähig. Die Warteschlange enthält Nachrichten, die zu mehreren logischen Entitäten gehören, z. B. Kunden, Client-Anwendungen oder Anforderungstypen, und Sie können jede Entität mit einem MessageGroupId identifizieren.

  • Die Warteschlange hat einen hohen Durchsatz. Bei geringem Durchsatz führt der Burst eines Mandanten selten zu einem Backlog, der sich auf andere Mandanten auswirkt. Bei hohem Durchsatz ist es nicht praktikabel, die Kundenflotte zu stark zu skalieren, um jeden Anstieg zu absorbieren, und selbst bei auto-scaling kann die Verzögerung, bis neue Verbraucher online gehen, zu Rückstaus führen.

  • Die Verweildauer ist Teil der Servicequalität Ihrer Anwendung. Faire Warteschlangen schützen ruhige Mieter vor längeren Verweilzeiten, die durch einen lauten Nachbarn verursacht werden. Wenn Ihre Anwendung nicht empfindlich auf die Verweildauer reagiert, ist der von Fair Queues bereitgestellte Schutz vor störenden Nachbarn möglicherweise nicht erforderlich.

Messwerte für faire Warteschlangen CloudWatch

Amazon SQS bietet zusätzliche CloudWatch Metriken, mit denen Sie die Minderung der Auswirkungen von Störgeräuschen auf Ihre Nachbarn überwachen können. Beispielsweise können Sie Approximate..InQuietGroups Metriken mit Standardmetriken auf Warteschlangenebene vergleichen. Bei einem Anstieg des Datenverkehrs für einen bestimmten Mandanten können die allgemeinen Kennzahlen auf Warteschlangenebene auf steigende Rückstände oder ein älteres Nachrichtenalter hinweisen. Wenn Sie sich die stillen Gruppen jedoch isoliert ansehen, können Sie feststellen, dass die meisten nicht verrauschten Nachrichtengruppen oder Mandanten nicht betroffen sind.

Im Folgenden finden Sie ein Beispiel, bei dem die standardmäßige Queue-Backlog-Metrik (ApproximateNumberOfMessagesVisible) aufgrund eines verrauschten Mandanten zunimmt, während der Backlog für nicht laute Mandanten () niedrig bleibt. ApproximateNumberOfMessagesVisibleInQuietGroups

Das Diagramm zeigt den Anstieg des Warteschlangenrückstands bei Gruppen mit hohem Benutzeraufkommen, während leise Gruppen weiterhin gering sind.

Eine vollständige Liste der Amazon CloudWatch SQS-Metriken und deren Beschreibungen finden Sie unter CloudWatch Metriken für Amazon SQS.