Messaging-Muster entkoppeln - AWS Präskriptive Leitlinien

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.

Messaging-Muster entkoppeln

Dieses Muster ermöglicht eine asynchrone Kommunikation zwischen Microservices unter Verwendung eines asynchronen Umfragemodells. Wenn das Backend-System einen Anruf erhält, antwortet es sofort mit einer Anforderungskennung und verarbeitet die Anforderung dann asynchron. Es kann eine lose gekoppelte Architektur erstellt werden, die Engpässe vermeidet, die durch synchrone Kommunikation, Latenz und Ein-/Ausgabeoperationen (IO) verursacht werden. Im Anwendungsfall des Musters werden Amazon Simple Queue Service (Amazon SQS) und Lambda verwendet, um asynchrone Kommunikation zwischen verschiedenen Microservices zu implementieren.

Sie sollten dieses Muster in Betracht ziehen, wenn:

  • Sie möchten lose gekoppelte Architektur erstellen.

  • Alle Vorgänge müssen nicht in einer einzigen Transaktion abgeschlossen werden, und einige Vorgänge können asynchron sein.

  • Das Downstream-System kann die Rate eingehender Transaktionen pro Sekunde (TPS) nicht handhaben. Die Nachrichten können in die Warteschlange geschrieben und basierend auf der Verfügbarkeit von Ressourcen verarbeitet werden.

Ein Nachteil dieses Musters besteht darin, dass Geschäftstransaktionsaktionen synchron sind. Obwohl das aufrufende System eine Antwort erhält, wird ein Teil der Transaktion möglicherweise weiterhin von nachgelagerten Systemen verarbeitet.

Wichtig

Da dieses Muster besser für ein Feuer- und Vergessen-Modell geeignet ist, sollte der Client, der diesen Dienst aufruft, den tatsächlichen Dienst abfragen, indem er eine Anforderungs-ID verwendet, um den Transaktionsstatus zu erhalten.

Anwendungsfall

In diesem Anwendungsfall verfügt das Versicherungssystem über eine Verkaufsdatenbank, die nach erfolgter monatlicher Zahlung automatisch mit den Details der Kundentransaktion aktualisiert wird. Die folgende Abbildung zeigt, wie dieses System mithilfe des entkoppelten Messaging-Musters erstellt wird.

Entkoppeln Messaing-Muster

Der Workflow besteht aus den folgenden Schritten:

  1. Die Frontend-Anwendung ruft das API Gateway mit den Zahlungsinformationen auf, nachdem ein Benutzer seine monatliche Zahlung geleistet hat.

  2. Das API Gateway führt die Lambda-Funktion „Kunde“ aus, die die Zahlungsinformationen in einer Amazon Aurora Aurora-Datenbank speichert, die Transaktionsdetails in einer Nachricht an den Amazon SQS „Sales“ schreibt und mit einer Erfolgsmeldung auf das aufrufende System reagiert.

  3. Eine Lambda-Funktion „Sales“ ruft die Transaktionsdetails aus der SQS-Nachricht ab und aktualisiert die Verkaufsdaten. Fehler- und Wiederholungslogik zur Aktualisierung der Vertriebsdatenbank wird als Teil der Lambda-Funktion „Sales“ integriert.