Über MaxwellMaxwell ist ein in Java geschriebener Daemon, der MySQL-Binlogs in Echtzeit lesen und Zeilenaktualisierungen im JSON-Format in Kafka, RabbitMq, Redis usw. schreiben kann. Mit dem inkrementellen MySQL-Datenstrom gibt es viele Nutzungsszenarien, z. B. die Echtzeitsynchronisierung von Daten mit dem Cache, die Synchronisierung von Daten mit ElasticSearch, Datenmigration usw. Offizielle Maxwell-Website: http://maxwells-daemon.io Konfiguration und Verwendung von MaxwellMaxwell ist von Java SDK abhängig, daher müssen Sie zuerst die JDK-Umgebung konfigurieren. 1. Laden Sie das Maxwell-Installationspaket herunterroot@xxx maxwell]# Passwort /usr/lokal/maxwell [root@xxx maxwell]# wget https://github.com/zendesk/maxwell/releases/download/v1.19.5/maxwell-1.19.5.tar.gz [root@xxx maxwell]# tar zxvf maxwell-1.19.5.tar.gz [root@xxx maxwell]# cd maxwell-1.19.5 2. Konfigurieren Sie MySQL und öffnen Sie das MySQL-Binlog-Protokoll[root@xxx mysql]# vi /usr/local/mysql/my.cnf [mysqld] log-bin=mysql-bin #füge diese Zeile hinzu binlog-format=ROW #wähle Zeilenmodus server_id=1 #gebe nach dem Zufallsprinzip eine Zeichenfolge an, die nicht mit dem Namen anderer Maschinen im Cluster identisch sein darf. Wenn nur eine Maschine vorhanden ist, kannst du sie nach Belieben angeben Starten Sie den MySQL-Dienst neu, melden Sie sich bei MySQL an und zeigen Sie den Binlog-Protokollmodus an mysql> Variablen wie '%log_bin%' anzeigen +---------------------------------+------------------------------+ | Variablenname | Wert | +---------------------------------+------------------------------+ | log_bin | EIN | | log_bin_basename | /data/mysqldb/mysql-bin | | log_bin_index | /data/mysqldb/mysql-bin.index | | log_bin_trust_function_creators | AUS | | log_bin_use_v1_row_events | AUS | | sql_log_bin | EIN | +---------------------------------+------------------------------+ 6 Reihen im Satz (0,11 Sek.) Maxwell benötigt die Berechtigung, den Status in der durch die Option schema_database angegebenen Datenbank zu speichern (der Standarddatenbankname ist maxwell). Daher müssen Sie ihm im Voraus die Berechtigung erteilen: #Erstellen Sie einen Benutzer yhrepl mit synchronisierten Daten mysql> Benutzer ‚yhrepl‘@‚*‘ erstellen, identifiziert durch ‚scgaopan‘; Abfrage OK, 0 Zeilen betroffen (0,10 Sek.) #Dieser Benutzer yhrepl muss die Berechtigung zum Bedienen der Datenbanktabelle haben, die synchronisiert werden muss mysql> gewähre test.* alle Berechtigungen an „yhrepl“@„%“, identifiziert durch „scgaopan“; Abfrage OK, 0 Zeilen betroffen (0,13 Sek.) #Geben Sie yhrepl die Berechtigung zum Synchronisieren von datamysql> grant select,replication client,replication slave on *.* to 'yhrepl'@'%' identified by 'scgaopan'; Abfrage OK, 0 Zeilen betroffen (0,10 Sek.) # Maxwell benötigt die Berechtigung, den Status in der durch die Option schema_database angegebenen Datenbank zu speichern (der Standarddatenbankname ist maxwell). mysql> gewähre 'yhrepl'@'%', identifiziert durch 'scgaopan', alle Privilegien auf maxwell.*; Abfrage OK, 0 Zeilen betroffen (0,09 Sek.) 3. Starten Sie Maxwell und führen Sie hauptsächlich in den eigentlichen Kampf beim Schreiben von Daten in rabbitmq ein:[root@xxx maxwell-1.19.5]# vi /usr/local/maxwell/maxwell-1.19.5/config.properties #Protokollebene log_level=DEBUG Produzent = Kaninchenmq daemon=true #Überwachte Datenbank, MySQL-Benutzer muss über die Berechtigung zum Lesen des Binärprotokolls und zum Erstellen neuer Datenbanktabellen verfügen host=47.105.110.xxx Benutzer=yhrepl Passwort=scgaopan output_nulls=true jdbc_options=autoReconnet=true #Welche Tabellen in der Datenbank werden überwacht? filter=exclude: *.*,include: test.AA #replica_server_id und client_id eindeutige Kennung, wird für die Clusterbereitstellung verwendet replica_server_id=64 client_id=Test-ID #metrics_type=http #metrics_slf4j_interval=60 #http_port=8111 #http_diagnostic=true # Standardwert: false #kaninchenmq rabbitmq_host=47.105.110.xxx rabbitmq_port=5672 rabbitmq_user=Gast rabbitmq_pass=Gast rabbitmq_virtual_host=/ rabbitmq_exchange=maxwell rabbitmq_exchange_type=Thema rabbitmq_exchange_durable=false rabbitmq_exchange_autodelete=false rabbitmq_routing_key_template=%db%.%table% rabbitmq_message_persistent=false rabbitmq_declare_exchange=true Starten Sie Maxwell: [root@xxx maxwell-1.19.5]# ./bin/maxwell #Kann im Hintergrund gestartet werden [root@xxx maxwell-1.19.5]# nohub ./bin/maxwell & Wenn der Start erfolgreich ist, wird die Maxwell-Bibliothek automatisch generiert. Die Bibliothek zeichnet den Status der Maxwell-Synchronisierung, die ID der letzten Synchronisierung und andere Informationen auf. Wenn die Hauptbibliothek ausfällt oder die Synchronisierung abnormal ist, basiert die nächste Synchronisierung auf der ID der letzten Synchronisierung, solange die Maxwell-Bibliothek vorhanden ist. Wenn die Maxwell-Bibliothek nicht generiert wird oder ein Fehler gemeldet wird, sind die in config.properties konfigurierten MySQL-Benutzerberechtigungen möglicherweise nicht ausreichend. RabbitMQ-BetriebRabbitMQ-Operation, nach dem Start von Maxwell wird ein Maxwell-Austausch generiert Die Bindung der entsprechenden Warteschlange, des Austauschs und der Warteschlange muss jedoch vom Benutzer implementiert werden. Erstellen Sie eine Maxwell-Test-Warteschlange: Binden Sie die Warteschlange an die Börse: Beachten Sie, dass beim Routing-Schlüssel zwischen Groß- und Kleinschreibung unterschieden wird. Ändern Sie einen Datensatz in der Datenbank und Sie können sehen, dass sich ein Datensatz in der Maxwell-Test-Warteschlange befindet. Vollständige SynchronisierungVerwenden Sie den Befehl maxwell-bootstrap ./bin/maxwell-bootstrap --database xhd --table xhd-sso --host 127.0.0.1 --user xiehd --password xiehd2018 --client_id maxwell_dev Synchronisieren Sie alle Daten in der Tabelle xhd.xhd-sso und geben Sie maxwell mit der Client-ID maxwell_dev an, um die Synchronisierung durchzuführen Der vorherige Befehl ist zuerst öffnen und dann maxwell mit client_id=maxwell_dev starten ./bin/maxwell --client_id maxwell_dev Warten Sie, bis die Ausführung abgeschlossen ist Oben finden Sie Einzelheiten zur Verwendung von Maxwell zum Synchronisieren von MySQL-Daten in Echtzeit. Weitere Informationen zur Verwendung von Maxwell zum Synchronisieren von MySQL-Daten finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Der Unterschied zwischen shtml und html
>>: So verwenden Sie CSS-Medienabfragen mit einem geringeren Seitenverhältnis
In MySQL gibt es drei Datumstypen: Datum (Jahr-Mo...
1. Download von der offiziellen Website: https://...
Manchmal kann es vorkommen, dass eine SQL-Anweisu...
Inhaltsverzeichnis 1. Digitale Aufzählung 2. Zeic...
Hardware-Ansichtsbefehle System # uname -a # Kern...
In MySQL 8.0.18 wurde eine neue Hash-Join-Funktio...
Ein weiterer wichtiger Aspekt bei der Trennung vo...
Inhaltsverzeichnis 1. Projektintegration 1. CDN-I...
Anpassen eines Demo-Befehls Die Syntax der benutz...
Lebenslauf-Code: XML/HTML-CodeInhalt in die Zwisc...
Dokumentumfang Dieser Artikel behandelt den Modus...
1. Überprüfen Sie die maximale Anzahl geöffneter ...
Methode 1: Bitte fügen Sie den folgenden Code nach...
In manchen Vorstellungsgesprächen werden häufig F...
Dieser Artikel beschreibt anhand eines Beispiels,...