0

Zum Beispiel amazon.com; Sie verlassen sich auf Microservice-Architektur und wahrscheinlich sind Bestellung und Bezahlung separate Mikro-Dienste, aber wenn Sie auf amazon.com Bestellung abfragen, können Sie endlich die Bestell-ID und Details sehen.Wenn es keine endgültige Konsistenz Ansatz ist, was ist das? Vielleicht 2PC?Wie erreicht man sofortige Konsistenz in der Microservice-Architektur?

Ich verallgemeinere meine Frage; Was ist, wenn die endgültige Konsistenz nicht für den Geschäftsvorgang geeignet ist (Endbenutzer sollte das Ergebnis Ende der Transaktion sehen), aber separate Microservices ist sinnvoll (wie Bestellung und Zahlung) wie sofortige Konsistenz zu behandeln?

Antwort

2

Es gibt mehrere Techniken, die Cross-Service-Transaktionen (Atomizität) bieten können: 2PC, Percolator-Transaktionen und Sagas.

Percolator's transactions haben serialisierbare Isolationsstufe. Sie sind in der Branche bekannt, siehe: Amazon DynamoDB transaction library, CockroachDB database, und das Google Pecolator-System selbst. Ein step-by-step visualization der Percolator-Transaktionen können Ihnen helfen zu verstehen, wie sie funktionieren.

Das Saga-Muster wurde in den späten 80er Jahren in der Sagas Papier beschrieben, wurde aber mit dem Anstieg der Microservices relevanter. Bitte sehen Sie sich die Applying the Saga Pattern Redewendung an.

Da Sie jedoch eine mögliche Konsistenz erwähnt haben, ist es wichtig zu beachten, dass alle Techniken erfordern, dass einzelne Dienste linearisierbar sind (starke Konsistenz) und Vergleiche und Einstellungen unterstützen.

Verwandte Themen