suchen
HeimJavajavaLernprogrammAusführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

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

Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

    Transaktionskoordinator (TC):
  1. Transaktionskoordinator

    , verwaltet den laufenden Status globaler Transaktionen und ist verantwortlich für Koordinierung und Steuerung von Commit oder Rollback globaler Transaktionen.

  2. Transaktionsmanager (TM):
  3. 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.

  4. Ressourcenmanager (RM):
  5. Steuerung von Filialtransaktionen

    , verantwortlich für die Filialregistrierung, Statusberichte, den Empfang von Anweisungen vom Transaktionskoordinator und die Steuerung von Filialtransaktionen (lokal). Commit und Rollback.

  6. 1.4.2. Was ist der Unterschied zu XA?

Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

    Der RM der XA-Lösung befindet sich tatsächlich in der
  1. Datenbankschicht

    . Der RM ist im Wesentlichen die Datenbank selbst (durch Bereitstellung). Treiber zur Verwendung durch die Anwendung).

  2. Fescars RM wird als Middleware-Schicht
  3. 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.

  4. Dieses Design beseitigt die Anforderungen der verteilten Transaktionslösung an die
  5. Protokollunterstützung der Datenbank

  6. 1.4.3. Zweistufige Einreichung

1.4.3.1. 2PC-Prozess für XA

    2PC-Prozess für XA

  1. Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

  2. Unabhängig davon, ob die Lösung von Phase2 Commit oder Rollback ist, muss die Sperre der Transaktionsressourcen bis zum Abschluss von Phase2 beibehalten werden, bevor sie freigegeben wird.
  3. 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.


  4. 1.4.3.2. 2PC-Prozess von Fescar

Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

  1. Lokale Daten in der Filialtransaktion Die Sperre

    wird von der lokalen Transaktion verwaltet und am Ende der Filialtransaktion Phase1 freigegeben.

  2. Gleichzeitig wird mit dem Ende der lokalen Transaktion auch die
  3. Verbindung

    freigegeben.

  4. Die
  5. 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.

  6. 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.
  7. 1.4.4 Wie werden Zweigtransaktionen festgeschrieben und zurückgesetzt? (Wichtiger Punkt)

    Zunächst muss die Anwendung
  1. Fescars JDBC-Datenquellen-Proxy

    verwenden, bei dem es sich um Fescars RM handelt

  2. 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.

  3. Auf diese Weise kann gewährleistet werden, dass jede Aktualisierung der übermittelten Geschäftsdaten über ein entsprechendes Rollback-Protokoll
    Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

  4. 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.

  5. 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.

1.4.5. Mechanismus zur Transaktionsweitergabe

  1. 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.

  2. 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.

1.4.6 Das grundlegende Verhaltensmuster von Zweigen

Eine Zweigtransaktion, die Teil der globalen Transaktion ist, enthält zusätzlich zu ihrer eigenen Geschäftslogik 4 Interaktionen mit dem Koordinator Verhalten:

  1. 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.

  2. Statusbericht: Nachdem der Datenvorgang der Filialtransaktion abgeschlossen ist, müssen die Ausführungsergebnisse dem Transaktionskoordinator gemeldet werden.

  3. Einreichung der Filialtransaktion: Beantworten Sie die vom Koordinator ausgegebene Anfrage zur Einreichung der Filialtransaktion und schließen Sie die Einreichung der Filialtransaktion ab.

  4. Branch-Rollback: Reagieren Sie auf die vom Koordinator ausgegebene Branch-Transaktions-Rollback-Anfrage und schließen Sie das Branch-Rollback ab.


    Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

    1.4.7. Verhaltensmodus des AT-Modus-Zweigs

  5. Die Geschäftslogik muss nicht auf den Transaktionsmechanismus und die Interaktion achten Der Prozess zwischen Zweigen und globalen Transaktionen erfolgt automatisch. Führen Sie


    Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

1.4.8 Verhaltensmuster der MT-Musterverzweigung

  1. 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.


    Ausführliche Einführung in verteilte Fescar-Transaktionen (Bilder und Text)

1.4.9. Gemischter Modus

Da die Zweige der AT- und MT-Modi im Verhalten grundsätzlich konsistent sind, sind sie vollständig kompatibel ist,

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 Versionsplanung

v0.1.0

  • Microservice-Framework-Unterstützung: Dubbo

  • Datenbank Unterstützung: MySQL

  • Annotation basierend auf Spring AOP

  • Transaktionskoordinator: Standalone-Version

v0.5.x

  • Microservice-Framework-Unterstützung: Spring Cloud

  • MT-Modus

  • Unterstützt die Transaktionsanpassung im TCC-Modus

  • Dynamische Konfiguration und Serviceerkennung

  • Transaktionskoordinator: Hochverfügbarkeits-Clusterversion

v0.8.x

  • Metriken

  • Konsole: Überwachung/Bereitstellung/Upgrade/Skalierung/Skalierung

v1.0.0

  • Allgemeine Verfügbarkeit: geeignet für Produktionsumgebung

v1.5.x

  • 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

v2.0.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!

Stellungnahme
Dieser Artikel ist reproduziert unter:博客园. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, SvelteTop 4 JavaScript -Frameworks in 2025: React, Angular, Vue, SvelteMar 07, 2025 pm 06:09 PM

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

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behobenSpring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behobenMar 07, 2025 pm 05:52 PM

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

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

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

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

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: wichtige Leistungssteigerung und neue FunktionenNode.js 20: wichtige Leistungssteigerung und neue FunktionenMar 07, 2025 pm 06:12 PM

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: Die Zukunft von Data Lake TabellenICEBERG: Die Zukunft von Data Lake TabellenMar 07, 2025 pm 06:31 PM

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

So teilen Sie Daten zwischen Schritten in der GurkeSo teilen Sie Daten zwischen Schritten in der GurkeMar 07, 2025 pm 05:55 PM

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

Wie kann ich funktionale Programmierungstechniken in Java implementieren?Wie kann ich funktionale Programmierungstechniken in Java implementieren?Mar 11, 2025 pm 05:51 PM

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

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser

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

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

SublimeText3 Englische Version

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

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version