Was sind die Vorteile von MySQL MGR?

Was sind die Vorteile von MySQL MGR?

MGR (MySQL Group Replication) ist eine neue Funktion, die in Version 5.7 hinzugefügt wurde und ein MySQL-Plug-In ist.

MGR ist eine neue Lösung mit hoher Verfügbarkeit und Skalierbarkeit. Die Daten aller Knoten im Cluster sind gleich und können auf alle Knoten geschrieben werden, wodurch echter Multimaster realisiert wird.

Es umfasst im Wesentlichen folgende Teile:

API-Schicht: verantwortlich für die Durchführung der Interaktion mit dem MySQL-Server, das Abrufen des Serverstatus und die Durchführung der Transaktionsverwaltung.

Komponentenebene: umfasst hauptsächlich drei spezifische Komponenten. Capture ist für das Sammeln relevanter Informationen zur Transaktionsausführung verantwortlich, Applier ist für das lokale Anwenden von Clustertransaktionen verantwortlich und Recovery ist für die Wiederherstellung von Knotendaten verantwortlich.

Replikationsschicht: verantwortlich für die Konfliktüberprüfung sowie den Empfang und die Anwendung von Clustertransaktionen.

Cluster-Kommunikationsschicht: Cluster-Kommunikations-Engine basierend auf dem Paxos-Protokoll und Interaktionsschnittstelle mit Komponenten der oberen Schicht.

MGR-Gruppenreplikation:

Aufgrund der Mängel der herkömmlichen asynchronen Replikation und der halbsynchronen Replikation – Datenkonsistenz kann nicht garantiert werden – hat MySQL in Version 5.7.17 offiziell die Gruppenreplikation (MySQL Group Replication, kurz MGR) eingeführt.

Eine Replikationsgruppe besteht aus mehreren Knoten. Die Übermittlung einer Transaktion muss von der Mehrheit der Knoten (N/2 + 1) in der Gruppe entschieden und genehmigt werden, bevor sie übermittelt werden kann. Wie in der Abbildung oben dargestellt, besteht eine Replikationsgruppe aus drei Knoten. Die Konsensschicht ist die Konsistenzprotokollschicht. Während des Transaktionsübermittlungsprozesses findet eine Kommunikation zwischen den Gruppen statt. Die Transaktion kann erst übermittelt und beantwortet werden, nachdem zwei Knoten sie genehmigt haben.

Die Einführung der Gruppenreplikation dient hauptsächlich dazu, das Problem der Dateninkonsistenz zu lösen, das bei der herkömmlichen asynchronen Replikation und der halbsynchronen Replikation auftreten kann. Die Gruppenreplikation basiert auf einem verteilten Konsistenzprotokoll (einer Variante des Paxos-Protokolls), um eine endgültige Datenkonsistenz in einer verteilten Umgebung zu erreichen und eine Datenlösung mit wirklich hoher Verfügbarkeit bereitzustellen (ob sie wirklich hochverfügbar ist, muss noch diskutiert werden). Die bereitgestellte Multi-Write-Lösung gibt uns Hoffnung auf die Realisierung einer Multi-Active-Lösung.

MGR implementiert eine verteilte Datenbankarchitektur und die zugrunde liegende verteilte Grundlage ist das Paxos-Protokoll. Paxos wird verwendet, um die Übermittlungsreihenfolge von Transaktionen in verteilten Datenbanksystemen sicherzustellen. Obwohl MGR den Slave-Kanal verwendet, verwendet es nur den Ausführungsthread (Applier-Thread) dieses Kanals, um das remote gesendete Binlog-Ereignis auszuführen, und verwendet diesen Kanal nicht, um das Binlog-Ereignis zu übertragen. MGR verwendet weder den Binlog-Ereignisübertragungsmechanismus der asynchronen Replikation noch den MySQL-Dienstport zur Kommunikation. MGR erstellt einen unabhängigen TCP-Port für die Kommunikation. Die Group Replication-Plugins auf jedem MySQL-Server sind über diesen Port miteinander verbunden und können direkt miteinander kommunizieren.

Die Übertragung des Binlog-Ereignisses ist keine einfache Punkt-zu-Punkt-Übertragung wie die asynchrone Replikation. MGR verwendet zur Datenübertragung das Paxos-Protokoll. Das Paxos-Protokoll gewährleistet die Konsistenz und Atomizität der Datenübertragung. MGR erstellt einen verteilten Replikationsmechanismus für Zustandsmaschinen auf Grundlage des Paxos-Protokolls, welches die Kerntechnologie für die Implementierung der Multi-Master-Replikation darstellt.

Drei wesentliche Vorteile:

1. Split-Brain vermeiden: Split-Brain tritt in MGR nicht auf (beachten Sie jedoch, dass Netzwerkpartitionen auftreten können. MGR verhält sich je nach Einstellung des Parameters group_replication_unreachable_majority_timeout=0/N etwas anders).

2. Datenkonsistenzgarantie: MGR verfügt über hervorragende Redundanzfunktionen, die sicherstellen können, dass Binlog-Ereignisse auf mindestens mehr als die Hälfte der Mitglieder repliziert werden. Solange nicht mehr als die Hälfte der Mitglieder gleichzeitig ausfällt, kommt es nicht zu Datenverlusten. MGR stellt außerdem sicher, dass das lokale Mitglied das Binlog-Ereignis der Transaktion nicht in die Binlog-Datei schreibt und die Transaktion festschreibt, solange das Binlog-Ereignis nicht an mehr als die Hälfte der Mitglieder übertragen wird. Dadurch wird sichergestellt, dass der ausgefallene Server keine Daten enthält, die bei den Online-Mitgliedern in der Gruppe nicht vorhanden sind. Daher kann ein ausgefallener Server nach dem Neustart der Gruppe beitreten, ohne dass eine besondere Verarbeitung erforderlich ist.

3. Multi-Node-Schreibunterstützung: Im Multi-Write-Modus können alle Knoten im Cluster beschrieben werden.

Oben sind die Vorteile von MySQL MGR im Detail beschrieben. Weitere Informationen zu MySQL MGR finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • So konfigurieren Sie MGR Single Master und mehrere Slaves in MySQL 8.0.15
  • Detaillierte Erläuterung der Wissenspunkte zum Umschalten zwischen MySQL MGR-Einzelmaster- und Multimastermodus
  • mysql 8.0.18 mgr-Installation und seine Umschaltfunktion
  • MySQL 8.0.18 verwendet Klon-Plugin, um die MGR-Implementierung neu zu erstellen
  • Detaillierte Erläuterung der Methode zur Bestimmung des einzelnen Masterknotens von MySQL 5.7 MGR
  • Häufige Probleme und Lösungen beim Erstellen von MySQL MGR

<<:  Diagramm zum Implementierungsprozess der Linux-Jenkins-Konfigurations-Salve-Knoten

>>:  So erkennen Sie die Dateisystemintegrität basierend auf AIDE in Linux

Artikel empfehlen

Detaillierte Erklärung des Integer-Datentyps tinyint in MySQL

Inhaltsverzeichnis 1.1Tinyint-Typbeschreibung 1.2...

Grundlegende Befehle für MySQL-Datenbankoperationen

1. Erstellen Sie eine Datenbank: Daten erstellen ...

Zusammenfassung der Implementierungsmethoden und Punkte der H5-Wakeup-APP

Inhaltsverzeichnis Vorwort Zur APP-Methode spring...

Warum MySQL große Transaktionen vermeiden sollte und wie man sie löst

Was ist eine große Sache? Transaktionen, die über...

CentOS 7-Konfiguration Tomcat9+MySQL-Lösung

Tomcat konfigurieren Installieren Sie zuerst Tomc...

Detaillierte Erläuterung der MySQL-Filterreplikationsideen

Inhaltsverzeichnis MySQL gefilterte Replikation I...

Linux-Swap-Partition (ausführliche Erklärung)

Inhaltsverzeichnis linux 1. Was ist SWAP 2. Was p...

SQL zur Implementierung der Wiederherstellung einer Zeitreihenversetzung

Inhaltsverzeichnis 1. Anforderungsbeschreibung 2....

Beispiel für eine Routing-Berechtigungsverwaltungsmethode in Vue2/vue3

1. Es gibt im Allgemeinen zwei Methoden zur Steue...