Saga Muster - 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.

Saga Muster

Das saga Muster ist ein Fehlerverwaltungsmuster, das dazu beiträgt, die Konsistenz verteilter Anwendungen herzustellen und Transaktionen zwischen mehreren Microservices zu koordinieren, um die Datenkonsistenz aufrechtzuerhalten. Ein Microservice veröffentlicht ein Ereignis für jede Transaktion, und die nächste Transaktion wird basierend auf dem Ergebnis des Ereignisses initiiert. Je nach Erfolg oder Misserfolg der Transaktionen können zwei verschiedene Pfade verwendet werden.

Die folgende Abbildung zeigt, wie das saga Muster ein Bestellverarbeitungssystem mithilfe von implementiertAWS Step Functions. Jeder Schritt (z. B. „ProcessPayment“) hat auch separate Schritte, um den Erfolg (z. B. „UpdateCustomerAccount“) oder Misserfolg (z. B. „SetOrderFailure“) des Prozesses zu bewältigen.

Saga Muster

Sie sollten erwägen, dieses Muster zu verwenden, wenn:

  • Die Anwendung muss die Datenkonsistenz über mehrere Microservices hinweg aufrechterhalten, ohne dass es zu einer strikten Beeinträchtigung kommt.

  • Es gibt langlebige Transaktionen und Sie möchten nicht, dass andere Microservices blockiert werden, wenn ein Microservice lange läuft.

  • Sie müssen ein Rollback durchführen können, wenn ein Vorgang in der Sequenz fehlschlägt.

Wichtig

Das saga Muster ist schwer zu debuggen und seine Komplexität nimmt mit der Anzahl der Microservices zu. Das Muster erfordert ein komplexes Programmiermodell, das Transaktionen für Rollback und Rückgängigmachen von Änderungen entwickelt und entwirft.

Weitere Informationen zur Implementierung des saga Musters in einer Microservices-Architektur finden Sie im Muster Implementieren Sie das Serverless-sagaMuster mithilfe von AWS Step Functions auf der Website AWS Prescriptive Guidance.