Der Inhalt dieses Artikels ist eine Einführung in die verteilten Fescar-Transaktionen (Bilder und Texte). Ich hoffe, dass er für Sie hilfreich ist.
1. Fescar verteilte Transaktion (Übersicht)
1.1. Fescar ist Alibabas Open-Source-Middleware für verteilte Transaktionen Transaktionsprobleme, die in Microservice-Szenarien auftreten, effizient und ohne Eingriffe in das Unternehmen lösen.
1.2. Die Entwicklungsgeschichte von Fescar
Im Jahr 2014 veröffentlichte das Alibaba-Middleware-Team TXC (Taobao Transaction Constructor), um verteilte Transaktionsdienste für Anwendungen innerhalb der Gruppe bereitzustellen.
Im Jahr 2016 unterzog sich TXC einer Produkttransformation und landete als GTS (Global Transaction Service) in der Alibaba Cloud und wurde zu diesem Zeitpunkt das einzige cloudbasierte verteilte Transaktionsprodukt der Branche in Alibabas öffentlicher Cloud, in der proprietären Cloud-Lösung , begann es, viele externe Kunden zu bedienen.
Seit 2019 hat das Alibaba-Middleware-Team basierend auf der Technologieakkumulation von TXC und GTS das Open-Source-Projekt Fescar (Fast & EaSy Commit And Rollback, FESCAR) gestartet, um gemeinsam mit der Community diese verteilte Transaktionslösung zu entwickeln .
1.3. Ursprüngliche Designabsicht
Kein Eingriff in das Geschäft
Hohe Leistung
1.4. Prinzip und Design
1.4.1. Design Concept Map
, verwaltet den laufenden Status globaler Transaktionen und ist verantwortlich für Koordinierung und Steuerung von Commit oder Rollback globaler Transaktionen.
, ist für die Eröffnung einer globalen Transaktion verantwortlich und initiiert letztendlich eine Globales Commit oder globale Antwort Die Auflösung, die ausgeführt werden soll.
, verantwortlich für die Filialregistrierung, Statusberichte, den Empfang von Anweisungen vom Transaktionskoordinator und die Steuerung von Filialtransaktionen (lokal). Commit und Rollback.
. Der RM ist im Wesentlichen die Datenbank selbst (durch Bereitstellung). Treiber zur Verwendung durch die Anwendung).
bereitgestellt, ist nicht von der Datenbank selbst abhängig Protokollunterstützung erfordert natürlich nicht, dass die Datenbank das XA-Protokoll unterstützt. Dies ist für eine Microservice-basierte Architektur sehr wichtig: Die Anwendungsschicht muss sich nicht an zwei verschiedene Sätze von Datenbanktreibern für lokale Transaktionen und verteilte Transaktionen anpassen.
wird von der lokalen Transaktion verwaltet und am Ende der Filialtransaktion Phase1 freigegeben.
freigegeben.
der Daten in der Filialtransaktion wird auf der Seite des Transaktionskoordinators verwaltet. Wenn das globale Commit der Phase2 aufgelöst wird, kann die globale Sperre aufgehoben werden sofort. Erst wenn ein globales Rollback aufgelöst wird, wird die globale Sperre bis zum Ende von Phase 2 der Verzweigung aufrechterhalten.
verwenden, bei dem es sich um Fescars RM handelt
Der JDBC-Datenquellenagent von Fescar analysiert das Geschäfts-SQL und organisiert die Datenspiegelung der Geschäftsdaten vor und nach dem Update in einem Rollback-Protokoll unter Verwendung von lokalen Transaktionen Die ACID-Funktion schreibt Geschäftsdatenaktualisierungen und Rollback-Protokollschreibvorgänge in derselben lokalen Transaktion fest.
Auf diese Weise kann gewährleistet werden, dass jede Aktualisierung der übermittelten Geschäftsdaten über ein entsprechendes Rollback-Protokoll
Bereinigen des Rollback-Protokolls ist erforderlich), Phase2 kann sehr schnell erledigt werden.
jedes Microservice-RPC-Framework unterstützen. Finden Sie einfach einen Mechanismus in einem bestimmten Framework, der XID transparent weitergeben kann, z. B. Filter + RpcContext von Dubbo.
In einer globalen Transaktion können Zweige von AT und MT gleichzeitig existieren . Auf diese Weise kann der Zweck einer umfassenden Abdeckung von Geschäftsszenarien erreicht werden: Wenn der AT-Modus unterstützt werden kann, verwenden Sie den AT-Modus. Wenn der AT-Modus vorübergehend nicht unterstützt werden kann, verwenden Sie stattdessen den MT-Modus. Darüber hinaus können natürlich auch nicht-transaktionale Ressourcen, die im MT-Modus verwaltet werden, zusammen mit relationalen Datenbankressourcen, die Transaktionen unterstützen, in die gleiche verteilte Transaktionsverwaltung einbezogen werden.
1.5. Vorläufige Versionsplanungv0.1.0
Unterstützen Sie XA
Natürlich legen wir im iterativen Entwicklungsprozess des Projekts größten Wert auf die Stimme der Community. Die Roadmap wird vollständig mit der Community kommuniziert und angepasst rechtzeitig.
1.6. Zusammenfassung
Nachdem ich die Übersicht gelesen habe, wird deutlich, dass es jedes Microservice-RPC-Framework unterstützt, in dem ich es verteilen möchte Wählen Sie eine der Transaktionslösungen aus. Sie sagen mir, dass Spring Cloud voraussichtlich in der nächsten Version integriert wird. Wenn Sie ein vorübergehender Experte sind, empfehlen Sie eine 1.7. Github-Open-Source-Adresse
https://github.com/alibaba/fescar/
Das obige ist der detaillierte Inhalt vonAusführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!