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.
Kommunikationsmechanismen
Im Microservices-Paradigma müssen verschiedene Komponenten einer Anwendung über ein Netzwerk kommunizieren. Zu den gängigen Ansätzen hierfür gehören REST-basiertes, GraphQL-basiertes, GRPC-basiertes und asynchrones Messaging.
REST-basierte Kommunikation
Das HTTP/S-Protokoll, das häufig für die synchrone Kommunikation zwischen Microservices verwendet wird, funktioniert häufig über. RESTful APIs API Gateway bietet eine optimierte Möglichkeit, eine API zu erstellen, die als zentraler Zugangspunkt zu Backend-Diensten dient und Aufgaben wie Verkehrsmanagement, Autorisierung, Überwachung und Versionskontrolle übernimmt.
GraphQL-basierte Kommunikation
In ähnlicher Weise ist GraphQL eine weit verbreitete Methode für synchrone Kommunikation, die dieselben Protokolle wie REST verwendet, aber die Exposition auf einen einzelnen Endpunkt beschränkt. Mit AWS AppSync können Sie GraphQL-Anwendungen erstellen und veröffentlichen, die direkt mit AWS Diensten und Datenspeichern interagieren, oder Lambda-Funktionen für die Geschäftslogik integrieren.
GRPC-basierte Kommunikation
gRPC ist ein synchrones, leichtes, leistungsstarkes Open-Source-RPC-Kommunikationsprotokoll. gRPC verbessert die zugrunde liegenden Protokolle, indem es HTTP/2 verwendet und mehr Funktionen wie Komprimierung und Stream-Priorisierung ermöglicht. Es verwendet die Protobuf Interface Definition Language (IDL), die binär codiert ist und somit die Vorteile des binären HTTP/2-Framings nutzt.
Asynchrone Nachrichtenübermittlung und Ereignisübergabe
Asynchrones Messaging ermöglicht Diensten die Kommunikation, indem sie Nachrichten über eine Warteschlange senden und empfangen. Dadurch können Dienste lose miteinander verknüpft bleiben und die Diensterkennung wird gefördert.
Es können die folgenden drei Typen von Nachrichten definiert werden:
-
Nachrichtenwarteschlangen: Eine Nachrichtenwarteschlange fungiert als Puffer, der Absender (Produzenten) und Empfänger (Verbraucher) von Nachrichten entkoppelt. Produzenten stellen Nachrichten in die Warteschlange, und Verbraucher stellen sie aus der Warteschlange und verarbeiten sie. Dieses Muster ist nützlich für asynchrone Kommunikation, Lastausgleich und die Verarbeitung von Datenverkehrsspitzen.
-
Publish-Subscribe: Beim Publish-Subscribe-Muster wird eine Nachricht zu einem Thema veröffentlicht, und mehrere interessierte Abonnenten erhalten die Nachricht. Dieses Muster ermöglicht die asynchrone Übertragung von Ereignissen oder Nachrichten an mehrere Verbraucher.
-
Ereignisgesteuertes Messaging: Beim ereignisgesteuerten Messaging werden Ereignisse erfasst und darauf reagiert, die im System auftreten. Ereignisse werden in einem Nachrichtenbroker veröffentlicht, und interessierte Dienste abonnieren bestimmte Ereignistypen. Dieses Muster ermöglicht eine lose Kopplung und ermöglicht es Diensten, ohne direkte Abhängigkeiten auf Ereignisse zu reagieren.
Um jeden dieser Nachrichtentypen zu implementieren, AWS bietet verschiedene verwaltete Dienste wie Amazon SQS, Amazon SNS, Amazon EventBridge, Amazon MQ und Amazon MSK an. Diese Dienste verfügen über einzigartige Funktionen, die auf spezifische Bedürfnisse zugeschnitten sind:
-
Amazon Simple Queue Service (Amazon SQS) und Amazon Simple Notification Service (Amazon SNS): Wie Sie in Abbildung 8 sehen können, ergänzen sich diese beiden Dienste gegenseitig. Amazon SQS bietet Speicherplatz für Nachrichten und Amazon SNS ermöglicht die Zustellung von Nachrichten an mehrere Abonnenten. Sie sind wirksam, wenn dieselbe Nachricht an mehrere Ziele zugestellt werden muss.
Abbildung 8: Nachrichtenbusmuster aktiviert AWS
-
Amazon EventBridge: Ein serverloser Service, der Ereignisse verwendet, um Anwendungskomponenten miteinander zu verbinden, sodass Sie leichter skalierbare, ereignisgesteuerte Anwendungen erstellen können. Verwenden Sie ihn, um Ereignisse aus Quellen wie selbst entwickelten Anwendungen, AWS Diensten und Software von Drittanbietern an Verbraucheranwendungen in Ihrem Unternehmen weiterzuleiten. EventBridge bietet eine einfache und konsistente Methode zum Erfassen, Filtern, Transformieren und Bereitstellen von Ereignissen, sodass Sie schnell neue Anwendungen erstellen können. EventBridge Event-Busse eignen sich hervorragend für die many-to-many Weiterleitung von Ereignissen zwischen ereignisgesteuerten Diensten.
-
Amazon MQ: Eine gute Wahl, wenn Sie bereits ein Messaging-System haben, das Standardprotokolle wie JMS, AMQP oder ähnliches verwendet. Dieser verwaltete Service bietet einen Ersatz für Ihr System, ohne den Betrieb zu unterbrechen.
-
Amazon MSK (Managed Kafka): Ein Nachrichtensystem zum Speichern und Lesen von Nachrichten, nützlich für Fälle, in denen Nachrichten mehrfach verarbeitet werden müssen. Es unterstützt auch Nachrichtenstreaming in Echtzeit.
-
Amazon Kinesis: Verarbeitung und Analyse von Streaming-Daten in Echtzeit. Dies ermöglicht die Entwicklung von Echtzeitanwendungen und bietet eine nahtlose Integration in das AWS Ökosystem.
Denken Sie daran, dass der beste Service für Sie von Ihren spezifischen Bedürfnissen abhängt. Daher ist es wichtig zu verstehen, was die einzelnen Angebote bieten und wie sie Ihren Anforderungen entsprechen.
Orchestrierung und Statusverwaltung
Microservices-Orchestrierung bezieht sich auf einen zentralisierten Ansatz, bei dem eine zentrale Komponente, der sogenannte Orchestrator, für die Verwaltung und Koordination der Interaktionen zwischen Microservices verantwortlich ist. Die Orchestrierung von Workflows über mehrere Microservices hinweg kann eine Herausforderung sein. Von der direkten Einbettung von Orchestrierungscode in Dienste wird abgeraten, da dies zu einer engeren Kopplung führt und den Ersatz einzelner Dienste behindert.
Step Functions bietet eine Workflow-Engine zur Verwaltung der komplexen Service-Orchestrierung, wie z. B. Fehlerbehandlung und Serialisierung. Auf diese Weise können Sie Anwendungen schnell skalieren und ändern, ohne Koordinationscode hinzufügen zu müssen. Step Functions ist Teil der AWS serverlosen Plattform und unterstützt Lambda-Funktionen, Amazon EC2, Amazon EKS, Amazon ECS AWS Glue, SageMaker KI und mehr.

Abbildung 9: Ein Beispiel für einen Microservices-Workflow mit parallel und sequentiellen Schritten, aufgerufen von AWS Step Functions
Amazon Managed Workflows for Apache Airflow