Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

Simple Queue Service: Der AWS Messaging Service

-
4
 Minuten Lesezeit
-
aws simple

Amazon Simple Queue Service (SQS) ist ein vollständig verwalteter Nachrichtendienst, der von Amazon Web Services (AWS) angeboten wird. Er ermöglicht es Entwicklern, hochgradig skalierbare, zuverlässige und belastbare Anwendungen zu erstellen, indem sie eine Microservice-Architektur verwenden.

Bevor wir weiter in das Thema einsteigen, sollten wir uns klarmachen, was ein Nachrichtendienst im Zusammenhang mit Cloud Computing ist: Hier ermöglicht diese Art von Dienst verschiedenen Komponenten einer verteilten Anwendung, miteinander zu kommunizieren, und zwar durch die Übertragung von Nachrichten. Diese Nachrichten können Verarbeitungsanfragen, Informationen, Benachrichtigungen usw. sein.

Was sind die Funktionen von SQS AWS?

FunktionBeschreibung
WarteschlangenErstellen und Verwalten von Warteschlangen, in denen Nachrichten gespeichert werden.
Nachrichten sendenSenden von Nachrichten an eine Warteschlange, die dann von anderen Komponenten oder Systemen verarbeitet werden können.
Nachrichten empfangenEmpfangen von Nachrichten aus einer Warteschlange zur weiteren Verarbeitung.
Nachrichten löschenLöschen von Nachrichten aus einer Warteschlange, nachdem sie erfolgreich verarbeitet wurden.
FIFO-WarteschlangenUnterstützung für First-In-First-Out (FIFO)-Warteschlangen, die die Reihenfolge der Nachrichten beibehalten.
ZugriffssteuerungFestlegung von Zugriffsrechten auf Warteschlangen, um die Sicherheit und den Datenschutz zu gewährleisten.
Batch-VerarbeitungSammeln von Nachrichten in Chargen und Verarbeitung mehrerer Nachrichten gleichzeitig, um die Effizienz zu verbessern.
FehlerbehandlungBehandlung von fehlerhaften Nachrichten und Wiederholung von Verarbeitungsschritten bei Fehlern.
SichtbarkeitszeitKonfiguration der Sichtbarkeitszeit für Nachrichten, um sicherzustellen, dass sie während der Verarbeitung nicht von anderen Komponenten abgerufen werden.
SkalierbarkeitAutomatische Skalierung von Warteschlangen, um hohe Lasten zu bewältigen und eine zuverlässige Nachrichtenverarbeitung sicherzustellen.
VerzögerungslieferungKonfiguration einer Verzögerungszeit für die Auslieferung von Nachrichten, um zeitgesteuerte Aktionen zu ermöglichen.
Überwachung und MetrikenErfassung von Metriken und Überwachung der Leistung von Warteschlangen, um Engpässe zu identifizieren und die Systemleistung zu optimieren.
IntegrationenIntegration mit anderen AWS-Services wie Lambda, S3 und EC2, um eine nahtlose Verarbeitung von Nachrichten zu ermöglichen.
VerschlüsselungVerschlüsselung von Nachrichten während der Übertragung und Speicherung, um die Sicherheit der Daten zu gewährleisten.

Die Funktionsweise von Amazon SQS verstehen

Ein verteiltes Nachrichtensystem besteht aus drei Hauptteilen: den Komponenten des verteilten Systems, der Warteschlange (die auf den Amazon SQS-Servern verwaltet wird) und den wartenden Nachrichten.

Im folgenden Beispiel hat unser System mehrere Producer (Nachrichtenproduzenten, diese Komponenten, die dafür zuständig sind, Nachrichten in die Warteschlange zu stellen) und Consumer (Nachrichtenkonsumenten, diese Komponenten, die dafür zuständig sind, die wartenden Nachrichten zu empfangen). Die Warteschlange speichert die Nachrichten auf den SQS-Servern.

Betrachten wir nun die folgende Abbildung:

➡️Der Producer (Komponente 1), sendet die Nachricht A in die Warteschlange, und diese Nachricht wird redundant auf die Amazon SQS-Server verteilt.

➡️Wenn Ein Consumer (Komponente 2) ist bereit, die Nachricht zu bearbeiten, d. h. er „verbraucht“ sie aus der Warteschlange, und die Nachricht A wird zurückgegeben, wodurch ein (einstellbarer) Sichtbarkeits-Timer gestartet wird.

➡️Während der Verarbeitung, bleibt es in der Warteschlange und wird für die Dauer des Timers nicht an die nächsten Empfangsanfragen weitergeleitet. Der Consumer entfernt die Nachricht A aus der Warteschlange, um zu verhindern, dass sie nach Ablauf des Sichtbarkeitszeitlimits erneut empfangen und verarbeitet wird.

In welchen Fällen kann SQS AWS verwendet werden?

Amazon SQS umfasst die folgenden verschiedenen Anwendungsfälle:

  • Anwendungsentkopplung: Dies ermöglicht eine bessere Skalierbarkeit, Ausfallsicherheit und
  • Isolation zwischen den Komponenten.
  • Hintergrundverarbeitung: SQS kann Aufgaben im Hintergrund verarbeiten, um Serverressourcen freizugeben und damit die Gesamtleistung zu verbessern.
  • Warteschlangenmanagement: Anwendungen können Nachrichten in ihrem eigenen Tempo verarbeiten, ohne dass eine Verarbeitung in Echtzeit erforderlich ist.
  • Microservice-Architektur: SQS verbessert die Kommunikation zwischen verschiedenen Microservices.
  • Verteilte Aufgabenverarbeitung: Die Möglichkeit, große Datenmengen zu verarbeiten, verbessert die Gesamtleistung der Anwendung und verkürzt die Verarbeitungszeiten

 

Amazon SQS versus Apache Kafka

Diese beiden Echtzeit-Messaging-Lösungen werden in Mikroservice-Architekturen und verteilten Anwendungen eingesetzt. Sie werden oft verglichen, haben aber dennoch einige wichtige Unterschiede:

➡️ In Bezug auf die Architektur wird SQS vollständig von Amazon verwaltet, sodass man sich nicht um alle Aspekte von Infrastruktur, Verfügbarkeit und Sicherheit kümmern muss. Kafka hingegen ist Open-Source und erfordert eine fortschrittlichere Konfiguration und Verwaltung.

➡️ Kafka wird oft bevorzugt, wenn ein sehr hoher Durchsatz und eine minimale Latenzzeit erforderlich sind. SQS bietet trotzdem eine Latenz im Bereich von einigen Millisekunden, ist aber im Allgemeinen langsamer als Kafka.

➡️ SQS ist auf hohe Skalierbarkeit ausgelegt, ist aber in seinen Funktionen stärker eingeschränkt als Kafka, das seinerseits sehr flexibel ist und in einer größeren Bandbreite von Anwendungsfällen eingesetzt werden kann.

➡️ Da SQS auf der Amazon-Infrastruktur aufgebaut ist, verfügt es über eine sehr hohe Sicherheit. Auch Kafka kann mit höheren Investitionen und Konfigurationen gesichert werden.

Wir kommen zu dem Schluss, dass SQS – wenig überraschend – besonders für AWS-basierte Anwendungen geeignet ist, während Kafka aufgrund seines Open-Source-Status flexibler und funktionsreicher ist, aber auch wesentlich mehr Investitionen in seine Konfiguration und Verwaltung erfordert.

Case Study: NASA

Wer kennt nicht die National Agency for Space and Aeronautics, kurz NASA?

Im Jahr 2017 führte die NASA die „NASA Image and Video Library“ ein, eine Inhaltsbibliothek, die es den Nutzern ermöglicht, nach NASA-Medieninhalten zu suchen, diese anzusehen und herunterzuladen. Die Einrichtung einer solchen Plattform stellte die Entwicklungsteams jedoch vor technische Herausforderungen, insbesondere bei der Verwaltung der Warteschlange für die Medienbearbeitung.

Um dieses Problem zu lösen, griff die NASA auf den Amazon SQS-Dienst zurück. Dadurch konnten sie die Verarbeitungsaufgaben von der Hauptwarteschlange entkoppeln, was den Druck auf die Server verringerte und die Leistung ihres Systems verbesserte. Die Integration mit anderen Amazon-Diensten ermöglichte der NASA auch die Nutzung von Amazon S3 zur Speicherung von Dateien sowie weiterer Dienste wie Amazon EC2, RDS und DynamoDB.

Dank Amazon SQS konnte die NASA die Herausforderungen ihrer Content-Plattform bewältigen, indem sie eine zuverlässige und skalierbare Messaging-Lösung für die Verwaltung der Medienverarbeitung bereitstellte.

Fazit

Amazon SQS ist ein zuverlässiger und skalierbarer asynchroner Nachrichtendienst, der es verteilten Anwendungen und Microservices ermöglicht, miteinander zu kommunizieren.

Er ist die ideale Wahl, wenn du die Kommunikation zwischen den verschiedenen Komponenten deiner Anwendung vereinfachen möchtest.

Si vous désirez en savoir un peu plus sur Amazon SQS, nous vous invitons à découvrir notre formation dédier à Amazon Web Services

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.