0Pricing
AWS Solutions Architect · Lektion

SQS-Standard- vs. FIFO-Queues

Vergleichen Sie Standard-Queues für maximalen Durchsatz mit FIFO-Queues für geordnete Verarbeitung genau einmal und wählen Sie den passenden Typ aus.

SQS-Standard- vs. FIFO-Queues ist eine kostenlose AWS Solutions Architect-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AWS Solutions Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Warum Nachrichtenwarteschlangen wichtig sind

Nachrichtenwarteschlangen entkoppeln Produzenten von Konsumenten: Ein Produzent sendet eine Nachricht an die Warteschlange, ohne darauf zu warten, dass ein Konsument sie verarbeitet. Der Konsument verarbeitet Nachrichten in seinem eigenen Tempo. Dieses Muster verhindert, dass schnelle Produzenten langsame Konsumenten überlasten, ermöglicht die unabhängige Skalierung jeder Ebene und stellt einen dauerhaften Puffer bereit, falls der Konsument vorübergehend nicht verfügbar ist. Amazon SQS ist der vollständig verwaltete, hochverfügbare Nachrichtenwarteschlangendienst von AWS.

Merkmale von SQS-Standardwarteschlangen

Standardwarteschlangen bieten unbegrenzten Durchsatz (nahezu unbegrenzt viele Transaktionen pro Sekunde). Sie garantieren die Zustellung mindestens einmal – in seltenen Fällen kann eine Nachricht aufgrund der verteilten Infrastruktur mehr als einmal zugestellt werden. Die Nachrichtenreihenfolge wird nach dem Best-Effort-Prinzip behandelt: Nachrichten werden im Allgemeinen in der Reihenfolge ihrer Übermittlung zugestellt, dies ist jedoch nicht garantiert. Standardwarteschlangen eignen sich ideal, wenn der Durchsatz entscheidend ist und Ihr Konsument gelegentliche Duplikate sowie eine Zustellung außerhalb der Reihenfolge verarbeiten kann.

# Create a Standard queue
aws sqs create-queue \
  --queue-name 'OrderProcessingQueue'

# Send a message
aws sqs send-message \
  --queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/OrderProcessingQueue' \
  --message-body 'OrderId-12345'

Merkmale von SQS-FIFO-Warteschlangen

FIFO-Warteschlangen (First-In, First-Out) garantieren eine Verarbeitung genau einmal und eine strikte Nachrichtenreihenfolge. Nachrichten werden exakt in der Reihenfolge zugestellt, in der sie gesendet wurden. FIFO-Warteschlangen unterstützen bis zu 300 Transaktionen pro Sekunde (3.000 mit Batching). Die Namen von FIFO-Warteschlangen müssen mit .fifo enden. Verwenden Sie FIFO-Warteschlangen, wenn die Reihenfolge und die Semantik der Verarbeitung genau einmal entscheidend sind – etwa bei Finanztransaktionen, der Verarbeitung von E-Commerce-Bestellungen oder Bestandsaktualisierungen.

# Create a FIFO queue
aws sqs create-queue \
  --queue-name 'OrderProcessingQueue.fifo' \
  --attributes '{
    "FifoQueue": "true",
    "ContentBasedDeduplication": "true"
  }'

Nachrichtengruppen in FIFO-Warteschlangen

FIFO-Warteschlangen verwenden Message Group IDs, um die Reihenfolge innerhalb der Warteschlange zu partitionieren. Nachrichten mit derselben Group ID werden in der richtigen Reihenfolge zugestellt; Nachrichten mit unterschiedlichen Group IDs können parallel verarbeitet werden. Verwenden Sie beispielsweise customerId als Group ID: Die Bestellungen jedes Kunden werden sequenziell verarbeitet, während die Bestellungen verschiedener Kunden gleichzeitig verarbeitet werden. Dadurch lassen sich FIFO-Semantik und horizontale Skalierbarkeit über mehrere Konsumenten hinweg kombinieren.

aws sqs send-message \
  --queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/Orders.fifo' \
  --message-body 'Order details here' \
  --message-group-id 'customer-789' \
  --message-deduplication-id 'order-uuid-abc123'

Deduplizierung in FIFO-Warteschlangen

FIFO-Warteschlangen verhindern die doppelte Verarbeitung von Nachrichten mithilfe einer Deduplizierungs-ID. Werden innerhalb eines Deduplizierungsintervalls von 5 Minuten zwei Nachrichten mit derselben ID gesendet, wird die zweite stillschweigend verworfen. Sie können eine Deduplizierungs-ID explizit angeben (MessageDeduplicationId) oder die inhaltsbasierte Deduplizierung aktivieren. Dabei berechnet SQS automatisch einen SHA-256-Hash des Nachrichteninhalts und verwendet ihn als Deduplizierungs-ID. Die inhaltsbasierte Deduplizierung ist einfacher, setzt jedoch eindeutige Nachrichteninhalte voraus.

Aufbewahrungs- und Größenlimits für Nachrichten

SQS bewahrt Nachrichten für einen konfigurierbaren Zeitraum auf: mindestens 1 Minute, höchstens 14 Tage (Standard: 4 Tage). Nachrichten, die innerhalb dieses Zeitraums nicht abgerufen werden, werden automatisch gelöscht. Die maximale Nachrichtengröße beträgt 256 KB. Für größere Nutzdaten verwenden Sie die SQS Extended Client Library oder speichern Sie die Nutzdaten in S3 und senden Sie in der SQS-Nachricht nur die Referenz auf das S3-Objekt. Für Standard- und FIFO-Warteschlangen gelten dieselben Limits.

Nachrichten empfangen und löschen

Konsumenten fragen die Warteschlange mit receive-message ab. Nach dem Empfang wird die Nachricht für den Zeitraum des Visibility Timeout unsichtbar (sie ist für andere Konsumenten verborgen). Der Konsument muss die Nachricht verarbeiten und sie anschließend mithilfe des Receipt Handles explizit löschen, bevor das Timeout abläuft. Wenn der Konsument abstürzt oder die Nachricht nicht rechtzeitig löscht, wird sie erneut sichtbar und kann von einem anderen Konsumenten verarbeitet werden – dadurch wird die Zustellung mindestens einmal in Standardwarteschlangen ermöglicht.

RECEIPT=$(aws sqs receive-message \
  --queue-url 'https://...' \
  --query 'Messages[0].ReceiptHandle' --output text)

# Process message, then delete it
aws sqs delete-message \
  --queue-url 'https://...' \
  --receipt-handle "$RECEIPT"

Durchsatzvergleich in der Praxis

Standardwarteschlangen eignen sich für: die Erstellung von Vorschaubildern, den Versand von Benachrichtigungs-E-Mails und die Protokollverarbeitung – also für Workloads, bei denen Duplikate idempotent verarbeitet werden können und die Reihenfolge keine Rolle spielt. FIFO-Warteschlangen sind erforderlich für: die Verarbeitung von Banküberweisungen (Belastung vor Gutschrift), die Aktualisierung von E-Commerce-Warenkörben (Artikel hinzufügen vor dem Checkout) sowie Workflow-Schritte, bei denen Schritt 2 auf Schritt 1 folgen muss. Für die meisten Architekturen mit hohem Durchsatz sind Standardwarteschlangen die Standardwahl. Wechseln Sie nur dann zu FIFO, wenn die Reihenfolge oder die Zustellung genau einmal zwingend erforderlich ist.

Batching für Durchsatz und Kostenoptimierung

SQS berechnet Gebühren pro API-Anfrage. Verwenden Sie Batch-Operationen, um bis zu 10 Nachrichten pro API-Aufruf zu senden, zu empfangen und zu löschen und dadurch die Kosten um bis zu das Zehnfache zu senken. FIFO-Warteschlangen unterstützen einen Modus für hohen Durchsatz (der Batching ermöglicht), wodurch das Limit mit Batches von 10 auf 3.000 Nachrichten pro Sekunde steigt. Verwenden Sie in Produktionsumgebungen immer send-message-batch und delete-message-batch, um die Kosten für API-Aufrufe zu minimieren.

aws sqs send-message-batch \
  --queue-url 'https://...' \
  --entries '[
    {"Id": "msg1", "MessageBody": "Order-001"},
    {"Id": "msg2", "MessageBody": "Order-002"},
    {"Id": "msg3", "MessageBody": "Order-003"}
  ]'

Zugriffsrichtlinien für Warteschlangen

SQS-Warteschlangen werden durch ressourcenbasierte Richtlinien (Warteschlangenrichtlinien) geschützt, die steuern, wer Nachrichten an die Warteschlange senden oder daraus empfangen darf. Das ist entscheidend, wenn kontoübergreifender Zugriff ermöglicht wird oder wenn SNS Nachrichten an eine SQS-Warteschlange veröffentlicht. Der Zugriff von Lambda auf SQS wird durch die IAM-Richtlinie der Lambda-Ausführungsrolle gesteuert (sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes). Wenden Sie stets das Prinzip der geringsten Berechtigungen an: Geben Sie einem Konsumenten nicht mehr Berechtigungen als zum Empfangen und Löschen erforderlich.

Standard oder FIFO auswählen: Entscheidungshilfe

Stellen Sie sich zur Auswahl folgende Fragen: (1) Spielt die Reihenfolge eine Rolle? Wenn ja → FIFO. (2) Ist eine Verarbeitung genau einmal erforderlich? Wenn ja → FIFO. (3) Wird ein Durchsatz von mehr als 3.000 TPS benötigt? Wenn ja → Standard (FIFO ist mit Batching auf 3.000 TPS begrenzt). (4) Können Konsumenten mit Duplikaten umgehen? Wenn ja → Standard ist einfacher und günstiger. Für die SAA-C03-Prüfung lauten die Schlüsselwörter für FIFO: „ordering“, „exactly-once“, „sequential“, „deduplication“. Schlüsselwörter für Standard sind: „high throughput“, „best effort“, „at-least-once“.

Kurze Überprüfung

Testen Sie Ihr Verständnis der AWS-Solutions-Architect-Konzepte (SAA-C03) aus dieser Lektion.

Zusammenfassung der Lektion

In dieser Lektion haben Sie gelernt: Standardwarteschlangen bieten unbegrenzten Durchsatz, Zustellung mindestens einmal und eine Nachrichtenreihenfolge nach dem Best-Effort-Prinzip. Sie eignen sich für Workloads mit hohem Volumen, die Duplikate tolerieren können. FIFO-Warteschlangen garantieren mithilfe von Message Group IDs und Deduplizierungs-IDs eine Verarbeitung genau einmal sowie eine strikte Nachrichtenreihenfolge und sind mit Batching auf 3.000 TPS begrenzt. Die Wahl zwischen beiden hängt davon ab, ob Reihenfolge und Deduplizierung zwingend erforderlich sind. Als Nächstes behandeln wir den Visibility Timeout, Dead-Letter-Warteschlangen und Long Polling.

Häufig gestellte Fragen

Ist die Lektion „SQS-Standard- vs. FIFO-Queues“ kostenlos?

Ja — der vollständige Text von „SQS-Standard- vs. FIFO-Queues“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AWS Solutions Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AWS Solutions Architect-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „SQS-Standard- vs. FIFO-Queues“?

Vergleichen Sie Standard-Queues für maximalen Durchsatz mit FIFO-Queues für geordnete Verarbeitung genau einmal und wählen Sie den passenden Typ aus. Du übst AWS Solutions Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AWS Solutions Architect zu starten?

Keine Vorkenntnisse erforderlich. AWS Solutions Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „SQS-Standard- vs. FIFO-Queues“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AWS Solutions Architect-Lektion Code schreiben und ausführen?

Ja. Jede AWS Solutions Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. SQS-Standard- vs. FIFO-Queues
  2. Visibility Timeout, DLQ und Long Polling
  3. SNS-Themen und Fan-out-Architektur
  4. SQS-Nachrichtenfilterung und SNS- plus SQS-Integration
← Zurück zu AWS Solutions Architect