Warteschlangentypen

Amazon SQS bietet zwei Warteschlangentypen für unterschiedliche Anwendungsanforderungen an:

Standardwarteschlangen

Unbegrenzter Durchsatz: Standardwarteschlangen unterstützen eine fast unbegrenzte Anzahl an Transaktionen pro Sekunde (TPS) pro API-Aktion.

Mindestens einmalige Lieferung: Eine Nachricht wird mindestens einmal übermittelt; gelegentlich wird eine Nachricht mehr als einmal gesendet.

Bestmögliche Einhaltung von Reihenfolgen: Mitunter werden Nachrichten in der falschen Reihenfolge zugestellt.

FIFO-Warteschlangen

Hoher Durchsatz: FIFO-Warteschlagen unterstützen standardmäßig bis zu 300 Nachrichten pro Sekunde (300 Sende-, Empfangs- oder Löschvorgänge pro Sekunde). Wenn Sie zehn Nachrichten pro Operation (Maximum) stapeln, unterstützen FIFO-Warteschlangen bis zu 3.000 Nachrichten pro Sekunde. Wenn Sie eine Erhöhung des Limits beantragen möchten, senden Sie eine Supportanfrage.

Genau einmalige Verarbeitung: Eine Nachricht wird einmal gesendet und bleibt solange verfügbar, bis der Kunde sie gelesen und gelöscht hat. Zur Warteschlange werden keine Duplikate hinzugefügt.

First-in-First-out-Übermittlung: Die Reihenfolge, in der Nachrichten gesendet und empfangen werden, wird strikt beibehalten (First-in-First-out).

sqs-what-is-sqs-standard-queue-diagram
sqs-what-is-sqs-fifo-queue-diagram

Sie können Standardwarteschlangen für Nachrichten in vielen Bereichen einsetzen, sofern Ihre Anwendung Nachrichten verarbeiten kann, die mehr als einmal und nicht der Reihenfolge nach eingehen, z. B.:

  • Echtzeit-Benutzeranfragen von intensiven Hintergrundaufgaben entkoppeln: Benutzer können Medien hochladen, während diese skaliert und verschlüsselt werden.
  • Aufgaben mehreren Worker-Knoten zuweisen: Eine hohe Anzahl von Kreditkarten-Validierungsanfragen können verarbeitet werden.
  • Stapelnachrichten für zukünftige Verarbeitung: Mehrere Einträge können für das Hinzufügen zu einer Datenbank geplant werden.

FIFO-Warteschlangen sollen die Nachrichtenübermittlung zwischen Anwendungen verbessern, wenn die Reihenfolge von Operationen und Ereignissen entscheidend ist oder wenn keine Duplikate zulässig sind, z. B.:

  • Sicherstellen, dass vom Benutzer eingegebene Befehle in der richtigen Reihenfolge ausgeführt werden.
  • Anzeigen des richtigen Produktpreises, indem Preisänderungen in der richtigen Reihenfolge gesendet werden.
  • Vermeiden, dass sich ein Kursteilnehmer für einen Kurs anmeldet, bevor dieser sich für ein Konto registriert hat.

Funktionalität

  • Unbegrenzte Warteschlangen und Nachrichten: Erstellen von unbegrenzten Amazon SQS-Warteschlangen mit einer unbegrenzten Anzahl von Nachrichten in jeder beliebigen Region
  • Nutzlastgröße: Die Nachrichtennutzlasten können bis zu 256 KB groß sein und Text in einem beliebigen Format enthalten. Jeder 64-KB-Block der Nutzdaten wird als 1 Anforderung in Rechnung gestellt. Ein einzelner API-Aufruf mit einer Nutzdatengröße von 256 KB wird als vier Anforderungen in Rechnung gestellt. Um Nachrichten zu senden, die größer sind als 256 KB, können Sie Amazon SQS Extended Client Library für Java nutzen. Dabei wird Amazon S3 verwendet, um die Nachrichtennutzlast zu speichern. Mit SQS wird eine Referenz bezüglich der Nachrichtennutzlast gesendet.
  • Stapel: Senden, empfangen oder löschen von Nachrichten in Stapeln von bis zu 10 Nachrichten oder 256 KB. Stapel kosten genauso viel wie einzelne Nachrichten, was heißt, dass ihre Nutzung für Kunden noch wirtschaftlicher sein kann.
  • Long Polling: Mit dieser Methode werden irrelevante Abfragen verringert, wodurch Sie Kosten minimieren und neue Nachrichten schnellstmöglich empfangen können. Wenn Ihre Warteschlange leer ist, warten Long Poll-Anforderungen bis zu 20 Sekunden auf den Eingang der nächsten Nachricht. Long Poll-Anforderungen kosten dasselbe wie herkömmliche Anforderungen.
  • Nachrichten werden bis zu 14 Tage lang in Warteschlangen aufbewahrt.
  • Gleichzeitiges Senden und Lesen von Nachrichten.
  • Sperren von Nachrichten: Wenn eine Mitteilung empfangen wird, wird sie „gesperrt“, während sie verarbeitet wird. Auf diese Weise wird verhindert, dass andere Computer dieselbe Mitteilung gleichzeitig verarbeiten. Schlägt die Verarbeitung der Mitteilung fehl, läuft die Sperre ab und die Mitteilung ist wieder verfügbar.
  • Freigeben von Warteschlangen: Sie können Amazon SQS-Warteschlagen anonym oder für bestimmte AWS-Konten völlig sicher freigeben. Die Freigabe von Warteschlangen kann außerdem nach IP-Adresse und Tageszeit beschränkt werden.
  • Serverseitige Verschlüsselung (SSE): Dient zum Schützen der Nachrichteninhalte in Amazon SQS-Warteschlangen mit Schlüsseln, die im AWS Key Management Service (AWS KMS) verwaltet werden. Die Nachrichten werden direkt beim Eingang in Amazon SQS verschlüsselt. Sie werden verschlüsselt gespeichert. Amazon SQS entschlüsselt Nachrichten nur, wenn sie an den autorisierten Kunden gesendet werden.
  • Warteschlangen für unzustellbare Nachrichten (DLQ): Nachrichten, die von einem Konsumenten nicht erfolgreich verarbeitet wurden, werden mit Warteschlangen für unzustellbare Nachrichten verwaltet. Wenn die maximale Empfangsanzahl für eine Nachricht überschritten wird, wird sie in die DLQ verschoben, die der ursprünglichen Warteschlange zugeordnet ist. Sie können getrennte Konsumentenprozesse für DLQs einrichten, mit deren Hilfe untersucht und nachvollzogen werden kann, warum Nachrichten nicht zugestellt werden. Die Warteschlangen für unzustellbare Nachrichten müssen vom selben Typ wie die ursprüngliche Warteschlange sein (Standard oder FIFO).

Einsatz von Amazon SQS mit anderen AWS-Infrastruktur-Web-Services

Die Warteschlangendienste für Nachrichten von Amazon SQS können mit anderen AWS-Services genutzt werden, z.B. Redshift, DynamoDB, RDS, EC2, ECS, Lambda und S3, um verteilte Anwendungen skalierbarer und zuverlässiger zu gestalten. Es folgen einige gängige Entwurfsmuster:

  • Verarbeitungswarteschlangen: Dienen zum Entkoppeln von Komponenten einer verteilten Anwendung, die ggf. nicht gleichzeitig denselben Verarbeitungsumfang leisten.
  • Puffer- und Stapeloperationen: Dienen zum Hinzufügen von Skalierbarkeit und Zuverlässigkeit zu Ihrer Architektur und zum Abfedern vorübergehender Volumenspitzen, ohne Nachrichten zu verlieren oder die Latenz zu verlängern.
  • Auslagerung von Anforderungen: Dient zum Verschieben langsamer Vorgänge aus interaktiven Anforderungspfaden durch Einreihen der Anforderung in eine Warteschlange.
  • Verbreiten: Kombinieren von SQS mit Simple Notification Service (SNS) zum parallelen Senden identischer Kopien einer Nachricht an mehrere Warteschlangen.
  • Priorität: Verwenden von separaten Warteschlangen, damit für die vorhandene Arbeit Prioritäten gesetzt werden können.
  • Skalierbarkeit: Da Nachrichtenwarteschlangen Prozesse entkoppeln, kann die Senden- bzw. Empfangen-Rate der Nachrichten leicht skaliert werden – durch das einfache Hinzufügen eines weiteren Prozesses.
  • Resilienz: Wenn ein Teil des Systems ausfällt, ist nicht automatisch das komplette System betroffen. Nachrichtenwarteschlangen entkoppeln Komponenten in einem System. Wenn ein Prozess, der Nachrichten aus einer Warteschlange liest, fehlschlägt, können trotzdem weiterhin Nachrichten zu dieser Warteschlange hinzugefügt werden. Sie werden verarbeitet, wenn das System wiederhergestellt ist.

Vorgesehene Verwendung und Einschränkungen

Die Nutzung dieses Service unterliegt der Amazon Web Services-Kundenvereinbarung.

Weitere Informationen zu den Preisen von Amazon SQS

Zur Seite mit den Preisen
Bereit zum Entwickeln?
Erste Schritte mit Amazon SQS
Haben Sie Fragen?
Kontakt