Dieser Artikel vermittelt Ihnen relevantes Wissen über die technische Analyse der MySQL-Architektur mit mittlerer und hoher Verfügbarkeit. Er stellt hauptsächlich die technische Analyse von MMM, der MySQL-Master-Slave-Architektur und Cluster-bezogenen Problemen vor.
Mit der Entwicklung der Informationstechnologie setzen Unternehmen zunehmend auf Informationsmanagement. Die Dateninformationen verschiedener Geschäftsanwendungen werden hauptsächlich in Datenbanken gespeichert. Um verschiedene Verluste aufgrund von Datenunterbrechungen zu vermeiden, hat die hohe Verfügbarkeit von Datenbanken beim Aufbau von Unternehmensinformationen höchste Priorität. Gleichzeitig benötigen Schlüsselunternehmen in Branchen oder Bereichen, die mit der Volkswirtschaft und dem Lebensunterhalt der Menschen zusammenhängen, wie z. B. Telekommunikation, Finanzen, Energie und Militärindustrie, eine hohe Verfügbarkeit für die Speicherung wichtiger Daten. Das Datensystem muss rund um die Uhr laufen. 7, um Datenverlust und Datenschäden zu verhindern. Klicken Sie hier, um die Programmier-Lernmaterialien zu erhalten
Hochverfügbarkeitsarchitektur ist grundsätzlich Standard für Internetdienste. Sowohl Anwendungsdienste als auch Datenbankdienste müssen hochverfügbar sein. Für ein System kann viele Module umfassen, z. B. Front-End-Anwendungen, Caches, Datenbanken, Suchvorgänge, Nachrichtenwarteschlangen usw. Jedes Modul muss hochverfügbar sein, um die Hochverfügbarkeit des gesamten Systems sicherzustellen . Bei Datenbankdiensten ist die Hochverfügbarkeit möglicherweise komplexer. Die Verfügbarkeit von Diensten für Benutzer erfordert nicht nur Zugriff, sondern auch Korrektheitsgarantien. Daher erfordert eine Hochverfügbarkeit von Datenbanken mehr Authentifizierung.
MySQL-Hochverfügbarkeitsarchitekturklassifizierung
MMM (Master-Master-Replikationsmanager für MySQL) ist eine Reihe von Skriptprogrammen, die Dual-Master-Failover und Dual-Master-Tagesverwaltung unterstützen.
MMM wurde in der Perl-Sprache entwickelt und wird hauptsächlich zur Überwachung und Verwaltung der MySQL-Master-Master-Replikation (Dual-Master-Replikation) verwendet. Obwohl es sich um eine Dual-Master-Replikation handelt, erlaubt das Unternehmen nur das gleichzeitige Schreiben auf einen Master , und der andere Der alternative Master stellt teilweise Lesedienste bereit, um das Aufwärmen des alternativen Masters beim Umschalten des primären Masters zu beschleunigen. Das Überwachungsende von MMM stellt mehrere virtuelle IPs (VIP) bereit, einschließlich einer beschreibbaren VIP Durch die Überwachungsverwaltung werden lesbare VIPs an das verfügbare MySQL gebunden. Wenn ein bestimmtes MySQL ausfällt, werden die VIPs auf ein anderes MySQL migriert.
Dieses Paket kann auch einen Leselastausgleich auf einer beliebigen Anzahl von Slave-Servern basierend auf einer Standard-Master-Slave-Konfiguration durchführen, sodass Sie es auch zum Starten virtueller IPs auf einer Gruppe replizierter Server verwenden können sind Skripte zur Implementierung von Datensicherungs- und Resynchronisierungsfunktionen zwischen Knoten.
mmm_mond: Überwachungsprozess, verantwortlich für alle Überwachungsarbeiten, Entscheidung und Verarbeitung aller Knotenrollenaktivitäten. Daher muss das Skript auf einem Supervisor ausgeführt werden.
mmm_agentd: Der auf jedem MSQL-Server ausgeführte Agentenprozess schließt die Überwachungsprüfungsarbeit ab und führt einfache Remote-Diensteinstellungen durch. Dieses Skript muss auf dem überwachten Computer ausgeführt werden.MMM bietet automatische und manuelle Möglichkeiten zum Entfernen der virtuellen IP eines Servers mit hoher Replikationsverzögerung in einer Gruppe von Servern. Gleichzeitig kann es auch Daten sichern und eine Replikation realisieren zwischen zwei Knoten.
MySQL selbst bietet keine Replikations-Failover-Lösung. Durch die MMM-Lösung kann ein Server-Failover erreicht werden, wodurch eine hohe Verfügbarkeit von MySQL erreicht wird.Einsatzszenarien von MMM
Da MMM die Datenkonsistenz nicht vollständig garantieren kann, eignet sich MMM für Szenarien, in denen die Anforderungen an die Datenkonsistenz nicht sehr hoch sind, Sie aber die Geschäftsverfügbarkeit in größtmöglichem Umfang sicherstellen möchten. Für Unternehmen, die hohe Anforderungen an die Datenkonsistenz haben, wird dringend davon abgeraten, eine Hochverfügbarkeitsarchitektur wie MMM zu verwenden.
Das MMM-Projekt kommt von Google: code.google.com/p/mysql-mas…Die offizielle Website ist: mysql-mmm.orgMHA ist ein Open-Source-MySQL-Hochverfügbarkeitsprogramm. Wenn MHA den Masterknotenausfall überwacht, wird der Slaveknoten mit den neuesten Daten automatisch zum neuen Masterknoten hochgestuft.
MHA erhält zusätzliche Informationen von anderen Knoten, um Konsistenzprobleme zu vermeiden. Das heißt, MHA erhält Dateninformationen von anderen Slave-Knoten und sendet diese Informationen an den Slave-Knoten, der dem Master-Knoten am nächsten liegt, sodass der Master-Knoten ausfällt Dies Der Slave-Knoten wird zum Master-Knoten befördert und dieser Slave-Knoten verfügt über alle Dateninformationen anderer Slave-Knoten.
MHA bietet auch die Online-Umschaltfunktion des Masterknotens, d. h. das Umschalten des Master-/Slave-Knotens bei Bedarf.
Die Grundkomponenten von MHA
MHA besteht aus zwei Teilen: MHA Manager (Verwaltungsknoten) und MHA Node (Datenknoten).
MHA Manager kann separat auf einem unabhängigen Computer bereitgestellt werden, um mehrere Master-Slave-Cluster zu verwalten, oder er kann auf einem Slave-Knoten bereitgestellt werden.
Implementierungsprinzip von MHA
MHA-Nutzungsszenarien
Derzeit unterstützt MHA hauptsächlich eine One-Master-Multiple-Slave-Architektur.
Um MHA zu erstellen, muss ein Replikationscluster über mindestens drei Datenbankserver verfügen, einen Master und zwei Slaves, d. h. einer fungiert als Master, einer fungiert als Backup-Master und der andere fungiert als Slave.
Da mindestens drei Server erforderlich sind und aus Gründen der Maschinenkosten, hat Taobao es auch auf dieser Basis geändert. Derzeit unterstützt Taobao TMHA bereits einen Master und einen Slave.
Auf der Codeebene ist MHA nur eine Reihe von Perl-Skripten. Ich glaube also, dass es mit der technischen Stärke von Alibaba nicht schwierig ist, MHA so zu ändern, dass es einen Master und einen Slave unterstützt.
Diese Art von Architektur wird häufig von Start-ups verwendet und erleichtert auch die schrittweise Erweiterung.
Merkmale dieser Architektur
Der Zugriffsprozess von MySQL Cluster erfolgt in der Regel über einen bestimmten Lastausgleichsalgorithmus. Die SQL-Knoten führen den Datenzugriff auf die Datenknoten durch und geben Datenergebnisse von den Datenknoten zurück Knoten einfach SQL-Knoten und Datenknoten konfigurieren und verwalten;
MySQL-Cluster-Knoten verstehen
MySQL-Cluster können je nach Knotentyp in drei Knotentypen unterteilt werden, nämlich Verwaltungsknoten, SQL-Knoten und Datenknoten Beim vollständigen MySQL-Clustersystem werden die Daten tatsächlich in der Speicher-Engine des NDB-Speicherservers gespeichert, die Tabellenstruktur wird auf dem MySQL-Server gespeichert, die Anwendung greift über den MySQL-Server auf die Daten zu und der Clusterverwaltungsserver verwaltet die Daten NDB-Speicher über das Verwaltungstool ndb_mgmd Server;
【1. Verwaltungsknoten】
Der Verwaltungsknoten wird hauptsächlich zur Verwaltung anderer Knoten verwendet. Die Datei config.ini wird normalerweise konfiguriert, um zu konfigurieren, wie viele Kopien im Cluster verwaltet werden müssen, wie viel Speicher für Daten und Indizes auf jedem Datenknoten reserviert werden soll, IP-Adresse und der Festplattenpfad zum Speichern von Daten auf jedem Datenknoten;
Verwaltungsknoten verwalten normalerweise Cluster-Konfigurationsdateien und Cluster-Protokolle. Jeder Knoten im Cluster ruft Konfigurationsinformationen vom Verwaltungsserver ab und fordert eine Möglichkeit an, festzustellen, wo sich der Verwaltungsserver befindet. Wenn im Knoten ein neues Ereignis auftritt, übermittelt der Knoten die Informationen dieser Art von Ereignis an den Verwaltungsserver und schreibt diese Informationen in das Cluster-Protokoll.
Im Allgemeinen ist mindestens ein Verwaltungsknoten im MySQL-Cluster-System erforderlich. Es ist auch erwähnenswert, dass der Verwaltungsknoten normalerweise zuerst gestartet wird, da der Datenknoten und der SQL-Knoten vor dem Start die Cluster-Konfigurationsinformationen lesen müssen Server, Anwendung Auf Datenknoten kann nicht direkt zugegriffen werden, Daten können nur über SQL-Knoten zurückgegeben werden. Jeder SQL-Knoten ist mit allen Speicherknoten verbunden. Wenn also ein Speicherknoten ausfällt, kann der SQL-Knoten die Anforderung zur Ausführung an einen anderen Speicherknoten übertragen. Im Allgemeinen gilt: Je mehr SQL-Knoten, desto geringer die jedem SQL-Knoten zugewiesene Last und desto besser ist die Gesamtleistung des Systems.
Datenknoten werden verwendet Speichern Sie die Daten im Cluster. Wenn ein Knoten ausfällt, gibt es immer einen anderen Datenknoten zum Speichern der Daten.
Normalerweise können diese drei verschiedenen logischen Knoten auf verschiedene Computer verteilt werden. Der Cluster verfügt über mindestens 3 Computer. Um sicherzustellen, dass der Clusterdienst normal aufrechterhalten werden kann, wird der Verwaltungsknoten normalerweise auf einem separaten Host platziert.
Empfohlenes Lernen:
MySQL-Video-TutorialDas obige ist der detaillierte Inhalt vonLassen Sie uns gemeinsam die Hochverfügbarkeitsarchitekturtechnologie von MySQL analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!