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
- Transaktionskoordinator (TC):
- Transaktionskoordinator
, verwaltet den laufenden Status globaler Transaktionen und ist verantwortlich für Koordinierung und Steuerung von Commit oder Rollback globaler Transaktionen.
Transaktionsmanager (TM): - Kontrolliert die Grenzen der globalen Transaktion
, 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.
Ressourcenmanager (RM): - Steuerung von Filialtransaktionen
, verantwortlich für die Filialregistrierung, Statusberichte, den Empfang von Anweisungen vom Transaktionskoordinator und die Steuerung von Filialtransaktionen (lokal). Commit und Rollback.
1.4.2. Was ist der Unterschied zu XA?
- Der RM der XA-Lösung befindet sich tatsächlich in der
- Datenbankschicht
. Der RM ist im Wesentlichen die Datenbank selbst (durch Bereitstellung). Treiber zur Verwendung durch die Anwendung).
Fescars RM wird als Middleware-Schicht - in Form eines Zweitanbieterpakets auf der Anwendungsseite
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.
Dieses Design beseitigt die Anforderungen der verteilten Transaktionslösung an die - Protokollunterstützung der Datenbank
1.4.3.1. 2PC-Prozess für XA
- 2PC-Prozess für XA
- Stellen Sie sich ein normal laufendes Unternehmen vor. Es besteht eine hohe Wahrscheinlichkeit, dass am Ende mehr als 90 % der Transaktionen erfolgreich eingereicht werden. Können wir lokale Transaktionen in Phase 1 einreichen? Auf diese Weise kann in mehr als 90 % der Fälle die Sperrhaltezeit der Phase 2 eingespart und die Gesamteffizienz verbessert werden.
- Lokale Daten in der Filialtransaktion Die Sperre
wird von der lokalen Transaktion verwaltet und am Ende der Filialtransaktion Phase1 freigegeben.
Gleichzeitig wird mit dem Ende der lokalen Transaktion auch die - Verbindung
freigegeben.
Die - globale Sperre
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.
Dieses Design reduziert die Sperrzeit von Ressourcen (Daten und Verbindungen) durch Zweigtransaktionen erheblich und bietet so eine Grundlage für die Verbesserung der allgemeinen Parallelität und des Durchsatzes. - 1.4.4 Wie werden Zweigtransaktionen festgeschrieben und zurückgesetzt? (Wichtiger Punkt)
- Zunächst muss die Anwendung
- Fescars JDBC-Datenquellen-Proxy
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
- Wenn es sich bei der Lösung um ein globales Commit handelt, wurde die Zweigtransaktion zu diesem Zeitpunkt übermittelt und erfordert keine synchrone Koordinationsverarbeitung (nur asynchrones
Bereinigen des Rollback-Protokolls ist erforderlich), Phase2 kann sehr schnell erledigt werden.
- Wenn es sich bei der Lösung um ein globales Rollback handelt, empfängt RM die Rollback-Anfrage vom Koordinator, findet den entsprechenden Rollback-Protokolldatensatz über die XID und die Filial-ID und generiert Feedback über den Rollback-Datensatz. Aktualisieren Sie die SQL und führen Sie sie aus, um das Rollback der Verzweigung abzuschließen.
- XID ist die eindeutige Kennung einer globalen Transaktion Um die XID einzufügen, wird sie über den Service-Call-Link weitergeleitet und an den Transaktionskontext des Service gebunden. Auf diese Weise registrieren die Datenbankaktualisierungsvorgänge im Service-Link Zweige mit der durch die XID dargestellten globalen Transaktion und werden in diese einbezogen die Gerichtsbarkeit derselben globalen Transaktion.
- Basierend auf diesem Mechanismus kann Fescar
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.
- Filialregistrierung: Bevor die Datenoperation der Filialtransaktion durchgeführt wird, muss sie beim Koordinator registriert werden, um die bevorstehende Filialtransaktionsdatenoperation in eine einzubinden Bereits geöffnete globale Transaktion In der Verwaltung können Datenoperationen erst durchgeführt werden, nachdem die Filialregistrierung erfolgreich war.
- Statusbericht: Nachdem der Datenvorgang der Filialtransaktion abgeschlossen ist, müssen die Ausführungsergebnisse dem Transaktionskoordinator gemeldet werden.
- Einreichung der Filialtransaktion: Beantworten Sie die vom Koordinator ausgegebene Anfrage zur Einreichung der Filialtransaktion und schließen Sie die Einreichung der Filialtransaktion ab.
- Branch-Rollback: Reagieren Sie auf die vom Koordinator ausgegebene Branch-Transaktions-Rollback-Anfrage und schließen Sie das Branch-Rollback ab.
1.4.7. Verhaltensmodus des AT-Modus-Zweigs - Die Geschäftslogik muss nicht auf den Transaktionsmechanismus und die Interaktion achten Der Prozess zwischen Zweigen und globalen Transaktionen erfolgt automatisch. Führen Sie
- aus Die Geschäftslogik muss in drei Teile „Vorbereiten/Festschreiben/Rollback“ zerlegt werden, um einen MT-Zweig zu bilden und an der globalen Transaktion teilzunehmen.
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- Microservice-Framework-Unterstützung: Dubbo
- Datenbank Unterstützung: MySQL
- Annotation basierend auf Spring AOP
- Transaktionskoordinator: Standalone-Version
- Microservice-Framework-Unterstützung: Spring Cloud
- MT-Modus
- Unterstützt die Transaktionsanpassung im TCC-Modus
- Dynamische Konfiguration und Serviceerkennung
- Transaktionskoordinator: Hochverfügbarkeits-Clusterversion
- Metriken
- Konsole: Überwachung/Bereitstellung/Upgrade/Skalierung/Skalierung
- Allgemeine Verfügbarkeit: geeignet für Produktionsumgebung
- Datenbankunterstützung: Oracle/PostgreSQL/OceanBase
- Anmerkung, die nicht auf Spring AOP basiert
- Optimierter Verarbeitungsmechanismus für Hot Data
- RocketMQ-Transaktionsnachrichten werden in das globale Transaktionsmanagement eingebunden
- NoSQL wird in den Anpassungsmechanismus des globalen Transaktionsmanagements eingebunden
- Unterstützt HBase
- Unterstützt Redis
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!

Dieser Artikel analysiert 2025 die vier besten JavaScript -Frameworks (React, Angular, Vue, Svelte) und verglichen ihre Leistung, Skalierbarkeit und Zukunftsaussichten. Während alle aufgrund starker Gemeinschaften und Ökosysteme dominant bleiben, sind ihr relatives Popul

Dieser Artikel befasst sich mit der Verwundbarkeit von CVE-2022-1471 in Snakeyaml, einem kritischen Fehler, der die Ausführung von Remote-Code ermöglicht. Es wird beschrieben

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

Node.js 20 verbessert die Leistung durch V8 -Motorverbesserungen erheblich, insbesondere durch schnellere Müllsammlung und E/A. Zu den neuen Funktionen gehören eine bessere Support von WebAssembly und raffinierte Debugging -Tools, die Produktivität der Entwickler und die Anwendungsgeschwindigkeit.

Iceberg, ein offenes Tabellenformat für große analytische Datensätze, verbessert die Leistung und Skalierbarkeit von Data Lake. Es befasst sich mit Einschränkungen von Parquet/ORC durch internes Metadatenmanagement und ermöglicht eine effiziente Schemaentwicklung, Zeitreisen, gleichzeitiger W

In diesem Artikel werden Methoden zum Austausch von Daten zwischen Gurkenschritten und dem Vergleich des Szenario -Kontextes, globalen Variablen, Argumentenübergabe und Datenstrukturen untersucht. Es betont Best Practices für Wartbarkeit, einschließlich präziser Kontextgebrauch, beschreibend

In diesem Artikel wird die Integration der funktionalen Programmierung in Java unter Verwendung von Lambda -Ausdrücken, Streams -API, Methodenreferenzen und optional untersucht. Es zeigt Vorteile wie eine verbesserte Lesbarkeit der Code und die Wartbarkeit durch SUKTIVE UND VERUSNAHMETALITÄT


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
