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.
So funktionieren Amazon SQS Fair Queues
Amazon SQS Fair Queues mindern automatisch die Auswirkungen von Noisy-Neighbor-Störungen in Warteschlangen mit mehreren Mandanten, indem verhindert wird, dass ein einzelner Mandant die Nachrichtenverarbeitung für andere Mandanten verlangsamt. Wenn Fair Queues feststellt, dass ein Mandant einen unverhältnismäßigen Teil der Nutzerkapazität der Warteschlange nutzt, priorisieren sie die Zustellung von Nachrichten von stillen Mietern.
Identifizierung des Mieters
In fairen Warteschlangen werden die Mieter bei jeder Nachricht anhand der MessageGroupId Immobilie identifiziert. Nachrichten, die dasselbe verwenden, MessageGroupId gehören demselben Mandanten. Eine faire Warteschlange kann eine Mischung aus Nachrichten mit und ohne enthaltenMessageGroupId. Jede Nachricht ohne A MessageGroupId wird so behandelt, als ob sie ihrem eigenen Mandanten gehört.
Wir empfehlen, für jede Nachricht, die Sie an eine faire Warteschlange senden, ein zu setzen und dabei eine Kennung zu verwenden, die einer echten Entität in Ihrem System zugeordnet ist, z. B. einer Kunden-ID, einer Client-Anwendungs-ID oder einem Anforderungstyp. MessageGroupId
Wie funktioniert die Erkennung
Amazon SQS erkennt laute Nachbarn mithilfe von zwei Maßnahmen:
-
Anteil an Parallelität — die Bordnachrichten des Mieters als Bruchteil aller Bordnachrichten in der Warteschlange. Dadurch werden Mandanten erkannt, bei denen viele Nachrichten gleichzeitig verarbeitet werden, sei es aufgrund eines hohen Sendevolumens, einer langsamen Verarbeitung oder beidem.
-
Anteil an der Bearbeitungszeit — der aktuelle Anteil des Mandanten an der gesamten Bearbeitungszeit des Verbrauchers. Dadurch werden Mandanten erkannt, deren Nachrichten zwar nur wenige, aber langsam zu verarbeiten sind, sodass der Mieter viel Zeit in Anspruch nimmt, ohne viele Nachrichten gleichzeitig im Umlauf zu haben.
Ein Mieter wird als lauter Nachbar markiert, wenn eine der folgenden Bedingungen zutrifft:
-
Anteil an Parallelität: Auf den Mandanten entfallen mehr als 10% der laufenden Nachrichten in der Warteschlange und er hat mindestens 30 seiner eigenen Nachrichten im Umlauf.
-
Anteil der Bearbeitungszeit: Der Anteil des Mieters an der gesamten Bearbeitungszeit der Verbraucher liegt in letzter Zeit bei über 10%.
Da es sich bei Amazon SQS um ein verteiltes System handelt, handelt es sich bei diesen Schwellenwerten um ungefähre Werte, sodass die Erkennung möglicherweise nicht genau bei den beschriebenen Werten aktiviert wird.
Wie ändert sich die Reihenfolge der Nachrichtenzustellung
Sobald ein Mandant als lauter Nachbar erkannt wird, priorisiert Amazon SQS die Zustellung von Nachrichten von leisen Mietern. Verbraucherinstanzen, die Nachrichten abfragen, empfangen Nachrichten von stillen Mandanten, wann immer Nachrichten von leisen Mandanten verfügbar sind. Diese Priorisierung wird so lange fortgesetzt, bis der Parallelitätsanteil und der Anteil an der Bearbeitungszeit des Nachbarn auf Werte gesunken sind, die mit denen von leisen Mandanten vergleichbar sind.
Nachrichten, bei denen es zu Störungen kommt, werden nicht gelöscht oder gedrosselt. Ihre Verweildauer nimmt zu, während Nachrichten, die sich an unruhige Mandanten richten, priorisiert werden, und kehrt zur Normalität zurück, sobald der Rückstand behoben ist. Wenn keine Quiet-Tenant-Nachrichten warten, empfangen Consumer-Instances wie gewohnt Noisy Neighbor-Nachrichten.
Wenn mehrere Mandanten gleichzeitig als Noisy Neighbours erkannt werden, erhalten Consumer-Instances zuerst Nachrichten von dem Mandanten mit den wenigsten Inflight-Nachrichten. Dies trägt dazu bei, die Verarbeitungszeit zwischen den lauten Mietern auszugleichen.
Wenn ein lauter Nachbar leise wird
Ein Mieter wird nicht mehr wie ein lauter Nachbar behandelt, wenn eine der folgenden Bedingungen zutrifft:
-
Der Rückstand des Mieters wurde vollständig aufgebraucht.
-
Über einen ununterbrochenen Zeitraum von 5 Minuten waren keine Nachrichten des Mieters unterwegs.
Danach werden die Nachrichten des Mieters nicht mehr depriorisiert und genauso behandelt wie Nachrichten von anderen unauffälligen Mietern.
Überlegungen zur Kapazität der Verbraucher
Damit die Maßnahme zur Erhöhung des Gleichzeitigkeitsanteils effektiv funktioniert, müssen Ihre Kunden genügend Nachrichten gleichzeitig verarbeiten, sodass der Anteil eines Mandanten an den Nachrichten während der Übertragung herausstechen kann. Berücksichtigen Sie dies bei der Dimensionierung Ihrer Kundenflotte.
Wenn Lambda über die Zuordnung von Ereignisquellen als Verbraucher verwendet wird, hängt die Anzahl der laufenden Nachrichten sowohl von der Parallelität der Lambda-Funktionen als auch von der Batchgröße ab. Bewerten Sie diese Einstellungen zusammen, wenn Sie die Größe Ihrer Verbraucher festlegen.
Wenn die Anzahl der Nachrichten während der Übertragung zu gering ist, als dass der Schwellenwert für die gleichzeitige Nutzung ausgelöst werden könnte, kann das Maß für den Anteil der Verarbeitungszeit dennoch störende Nachbarn erkennen. Faire Warteschlangen funktionieren jedoch am besten, wenn die Verbraucher genügend Nachrichten gleichzeitig verarbeiten, sodass beide Maßnahmen bewertet werden können.