Original 1.1. MySQL-Binlog aktivieren 1. Ändern Sie # binlog Protokollspeicherpfad log-bin=D:\env\mysql-5.7.28-winx64\binlog # Das Protokoll zeichnet das Format auf, in dem jede Datenzeile geändert wird. binlog-format=ROW # Die Service-ID der aktuellen Maschine. Wenn es sich um einen Cluster handelt, kann sie nicht wiederholt werden server_id=1 2. Überprüfen Sie nach dem Neustart des MySQL-Dienstes, ob die Konfigurationsvariablen wirksam sind: mysql> Variablen wie „%log_bin%“ anzeigen; +---------------------------------+----------------------+ | Variablenname | Wert | +---------------------------------+----------------------+ | log_bin | EIN | | log_bin_basename | D:\env\mysql-5 | | log_bin_index | D:\env\mysql-5.index | | log_bin_trust_function_creators | AUS | | log_bin_use_v1_row_events | AUS | | sql_log_bin | EIN | +---------------------------------+----------------------+ 6 Zeilen im Satz, 1 Warnung (0,00 Sek.) Konfigurieren Sie den ERSTELLEN SIE EINEN DURCH ,Kanal‘ IDENTIFIZIERTEN BENUTZER-Kanal; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT AUF *.* AN 'Kanal'@'%'; FLUSH-PRIVILEGIEN; 1.2. RabbitMQ-Austausche und -Warteschlangen konfigurieren 1. Erstellen Sie eine neue 2. Erstellen Sie eine neue 3. Legen Sie die Bindungen in der Warteschlange fest, geben Sie den 1.3. Installieren eines eigenständigen Kanals1.3.1. Herunterladen und installierenHerunterladen und entpacken; sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz sudo tar -zxvf canal.deployer-1.1.4.tar.gz Installation der neuesten Version sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.deployer-1.1.5-SNAPSHOT.tar.gz sudo tar -zxvf canal.deployer-1.1.5-SNAPSHOT.tar.gz Konfigurationsdateien1.3.2.1. Knotenkonfigurationsdatei canal.properties # tcp bind ip, die IP-Adresse des aktuellen Knotens canal.ip = 192.168.2.108 # IP bei Zookeeper registrieren, bei der IP-Adresse von ZK registrieren, wie in Abbildung 1 gezeigt. canal.register.ip = 192.168.2.108 canal.zkServers = zk cluster # tcp, kafka, RocketMQ, die neueste Version 1.1.5 kann direkt eine Verbindung zu rabbitmq herstellen canal.serverMode = rabbitmq # Ziele, die auf dem aktuellen Server bereitgestellte Instanzliste, entsprechend dem Namen jedes Instanzordners (../conf/<Instanzname>) canal.destinations = example2 # Stellen Sie die MQ-Serveradresse ein, hier ist die RabbitMQ-Serveradresse #!! Die Standardkonfiguration nach dem Herunterladen hier besteht darin, die IP zu konfigurieren: Port # RabbitMQ muss den Port hier nicht konfigurieren canal.mq.servers = 192.168.208.100 # Die folgenden Elemente sind alle neue Versionen 1.1.5, die die Rabbitmq-Konfiguration canal.mq.vhost=/ unterstützen. canal.mq.exchange=example2-ex # Geben Sie den Exchange-Namen auf rabbitmq an, den Namen, der im Schritt „Exchange erstellen“ erstellt wurde canal.mq.username=admin # Benutzername für die Verbindung mit rabbitmq canal.mq.password=**** # Passwort für die Verbindung mit rabbitmq canal.mq.aliyunuid= 1.3.2.2. Instanzkonfigurationsdatei instance.properties # Positionsinfo, Datenbankverbindungsinformationen canal.instance.master.address=192.168.2.108:3306 # Die folgenden beiden Konfigurationen erfordern die Werte der Felder „Datei“ und „Position“, die durch Ausführen von „SHOW MASTER STATUS“ in der Datenbank der oben konfigurierten Adresse canal.instance.master.journal.name=mysql-5.7 erhalten werden canal.instance.master.position=674996 # Tabellenmetadaten-TSDB-Info, deaktivieren Sie TSDB, um die Zeitreihenversion der Tabellenmetadaten aufzuzeichnen canal.instance.tsdb.enable=false # Benutzername/Passwort, der Benutzername und das Passwort für die Instanzverbindungsdaten canal.instance.dbUsername=canal canal.instance.dbPassword=Kanal # Tabellen-Regex, regulär übereinstimmende Datenbanktabelle, die überwacht werden soll canal.instance.filter.regex=ysb\\.useropcosttimes_prod # mq-Konfiguration, geben Sie das Routing an, an das rabbitmq gebunden ist, Einzelheiten finden Sie im dritten Schritt von „Rabbitmq konfigurieren“. canal.mq.topic=beispiel2-routingkey 1.3.3. Starten Sie den Kanaldienst Das Startskript für Linux λ .\startup.bat Starten Sie CMD: Java -xms128m -xmx512m -xx: permSize = 128m -djava.awt.headless = true -djava.net.Preferipv4Stack = true -Dapplication JDWP: Transport = dt_socket, Adresse = 9099, Server = y, suspend = n -dappname = otter -canal -dlogback.configurationFile = "d: \ env \ green \ canal -1.5 \ bin \ eval.xml \ d: \ ev \ \ um. \ conf \ Canal.Properties "-ClassPath" d: \ env \ green \ canal -1.5 \ bin \\ .. \ conf \ .. \ lib \*; d: \ env \ green \ Canal -1.1.5 \ bin \\ .. \ conf "java -xms128m -xmmmmx512m -xxms = true -djava.net.Preferipv4Stack = True -Dapplication.Codeset = Utf -8 -dfile.Coding = UTF -8 -Server -xdebug -xnoagent -djava.compiler = keine -xrunjdwp: transport = dt_socket, address = 9099, scr Back.ConfigurationFile = "D: \ Env \ Green \ Canal-1.1.5 \ bin \\ .. \ conf \ logback.xml" -dcanal.conf = "d: \ env \ green \ canal-1.5 \ bin \ \ conf \ canal-1 \ .. \ lib \*; d: \ env \ green \ canal-1.1.5 \ bin \\ .. \ conf "com.alibaba.otter.canal.deployer.canallauncher Java HotSpot(TM) Server VM-Warnung: Option PermSize=128m wird ignoriert; Unterstützung wurde in 8.0 entfernt Lausche auf Transport-dt_socket an Adresse: 9099 Ändern Sie abschließend die Datenbankdaten manuell oder warten Sie auf andere Änderungen. Überprüfen Sie dann die Überwachung auf rabbitmq, um festzustellen, ob der Vorgang erfolgreich war. 1.4. Clusterkanal installieren1.4.1. Installieren Sie canal-admin1.4.1.1. Herunterladen und installieren Herunterladen und entpacken sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.admin-1.1.5-SNAPSHOT.tar.gz sudo tar -zxvf canal.admin-1.1.5-SNAPSHOT.tar.gz Konfigurationsdateien Server: Port: 8089 Frühling: Jackson: Datumsformat: jjjj-MM-tt HH:mm:ss Zeitzone: GMT+8 spring.datasource: Adresse: 192.168.2.108:3306 Datenbank: canal_manager Benutzername: Kanal Passwort: Kanal Treiberklassenname: com.mysql.jdbc.Driver # „serverTimezone=UTC“ muss an das Ende der Datenbankverbindungszeichenfolge angehängt werden, andernfalls wird beim Start eine Zeitzonenausnahme gemeldet; URL: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC Hikari: maximale Poolgröße: 30 Mindestleerlauf: 1 Kanal: # Konfigurieren Sie das Administratorkonto und das Passwort von canal-adminUser: admin Administratorkennwort: 123456 Führen Sie dieses SQL-Skript in der Datenbank aus, die 1.4.1.3. Starten Sie den Canal-Admin-Dienst Das Startskript für Linux λ .\startup.bat Befehl starten: java -Xms128m -Xmx512m -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -DappName=canal-admin -classpath "D:\env\green\canal-1.1.5-admin\bin\\..\conf\..\lib\*;D:\env\green\canal-1.1.5-admin\bin\\..\conf" com.alibaba.otter.canal.admin.CanalAdminApplication 2020-04-13 20:01:39.495 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication – CanalAdminApplication wird auf Memento-PC mit PID 50696 gestartet (D:\env\green\canal-1.1.5-admin\lib\canal-admin-server-1.1.5-SNAPSHOT.jar gestartet von Memento in D:\env\green\canal-1.1.5-admin\bin) 2020-04-13 20:01:39.527 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - Kein aktives Profil festgelegt, auf Standardprofile zurückgreifen: Standard 2020-04-13 20:01:39.566 [main] INFO osbwscAnnotationConfigServletWebServerApplicationContext – Aktualisieren von org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@13a5bf6: Startdatum [Mon Apr 13 20:01:39 CST 2020]; Wurzel der Kontexthierarchie 2020-04-13 20:01:41.149 [main] INFO osboot.web.embedded.tomcat.TomcatWebServer – Tomcat initialisiert mit Port(s): 8089 (http) 2020-04-13 20:01:41.166 [main] INFO org.apache.coyote.http11.Http11NioProtocol – ProtocolHandler wird initialisiert ["http-nio-8089"] 2020-04-13 20:01:41.176 [main] INFO org.apache.catalina.core.StandardService – Dienst wird gestartet [Tomcat] 2020-04-13 20:01:41.177 [main] INFO org.apache.catalina.core.StandardEngine – Servlet-Engine wird gestartet: Apache Tomcat/8.5.29 ... 2020-04-13 20:01:42.996 [main] INFO org.apache.coyote.http11.Http11NioProtocol - ProtocolHandler wird gestartet ["http-nio-8089"] 2020-04-13 20:01:43.007 [main] INFO org.apache.tomcat.util.net.NioSelectorPool – Verwenden eines gemeinsamen Selektors zum Schreiben/Lesen von Servlets 2020-04-13 20:01:43.019 [main] INFO osboot.web.embedded.tomcat.TomcatWebServer - Tomcat gestartet auf Port(s): 8089 (http) mit Kontextpfad '' 2020-04-13 20:01:43.024 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication – CanalAdminApplication in 3,919 Sekunden gestartet (JVM läuft seit 5,241) 1.4.1.4. Hinweise Gewähren Sie 'canal'@'%' alle Privilegien für *.*. 1.4.2. Einen eigenständigen Kanalserverknoten hinzufügen1.4.2.1. Starten Sie den Canal-Server-Knotendienst Der eigenständige Canal-Server wird wie gewohnt gestartet. Zu diesem Zeitpunkt können die Konfigurationsinformationen in 1.4.2.2. Einen neuen Standalone-Server erstellen Erstellen Sie einen eigenständigen Der Sie müssen die in 1.4.2.3. Eine neue Instanz erstellen Erstellen Sie manuell eine neue !!Beachten Sie, dass Sie beim Erstellen oder Starten 1.4.3. Hinzufügen von Cluster-Kanalserverknoten1.4.3.1. Einen neuen Cluster erstellen Sie müssen den Clusternamen angeben und die an den Cluster gebundene Konfigurieren Sie nach erfolgreicher Erstellung die allgemeinen Serverkonfigurationsinformationen des Clusters in Sie können die zuvor konfigurierte # Kanal-Admin-Konfiguration canal.admin.manager = 192.168.2.108:8089 canal.instance.global.mode = Manager 1.4.3.2. Einen neuen Server erstellen Geben Sie den Cluster an, zu dem es gehört (der Clustername ist in Wenn Dabei gilt es auf eine Sache besonders zu achten. Aufmerksame Leute werden möglicherweise feststellen, dass es neben der Konfigurationsdatei Im Startskript Beim Erstellen eines @rem setze canal_conf=... setze canal_conf=%conf_dir%\canal_local.properties Laden Sie die Konfigurationsdatei 1.4.3.3. Eine neue Instanz erstellen Die Konfiguration kann hier auch basierend auf der Konfiguration der Instanz # 2. Positionsinfo, geben Sie die Binlog-Positionsinformationen an, an denen MySQL mit der Synchronisierung beginnt canal.instance.master.address=192.168.0.25:63306 canal.instance.master.journal.name=mysql-bin.001349 canal.instance.master.position=198213313 # 3. Benutzername/Passwort, legen Sie den Datenbank-Benutzernamen und das Passwort für die Synchronisierung von MySQL fest canal.instance.dbUsername=xxxx canal.instance.dbPassword=xxx # 4. table regex, regulärer Ausdruck, der mit der zu synchronisierenden Datentabelle übereinstimmt canal.instance.filter.regex=xxxx # 5. mq-Konfiguration, geben Sie die Routing-Bindung an MySQL an, siehe „1.2.3“ canal.mq.topic=beispiel2-routingkey Nach dem Speichern können Sie die Instanz im Betrieb starten Wenn die Instanz hier nicht gestartet werden kann, versuchen Sie die folgenden Schritte, um sie zu überprüfen und zu betreiben: Überprüfen Sie, ob 1.5. Anweisungen zur Kanalkonfiguration1.5.1. Kanaleigenschaften
canal.instance.tsdb.enable = true canal.instance.tsdb.dir = ${canal.file.data.dir:../conf}/${canal.instance.destination:} canal.instance.tsdb.url = jdbc:h2:${canal.instance.tsdb.dir}/h2;CACHE_SIZE=1000;MODE=MYSQL; canal.instance.tsdb.dbBenutzername = Kanal canal.instance.tsdb.dbPassword = Kanal 5.canal.destinations, eine Liste der im aktuellen Cluster bereitgestellten Instanzen 6.canal.mq.servers, legen Sie die Rabbitmq-Clusteradresse fest, !! Sie können den Port hier nicht hinzufügen 1.5.2. Instanzeigenschaften
1.5.3. Eigenschaftenkonfigurationsdatei canal.properties (Systemstammkonfigurationsdatei) 1.Kanal.Eigenschaften canal.destinations # Liste der auf dem aktuellen Server bereitgestellten Instanzen canal.conf.dir # Pfad zum conf-Verzeichnis canal.auto.scan # Automatisches Scannen von Instanzen aktivieren # Wenn auf „true“ konfiguriert, werden Änderungen der Instanzkonfiguration im Verzeichnis canal.conf.dir automatisch ausgelöst # 1. Instanzverzeichnis hinzugefügt: löst das Laden der Instanzkonfiguration aus und startet automatisch, wenn „lazy“ auf „true“ gesetzt ist; # 2. Löschen des Instanzverzeichnisses: Deinstallieren Sie die entsprechende Instanzkonfiguration und fahren Sie sie herunter, falls sie gestartet wurde. # 3. Änderungen in der Datei instance.properties: Instanzkonfiguration neu laden und automatisch neu starten, wenn sie gestartet wurde; canal.auto.scan.interval # Instanz automatisches Scanintervall, Einheit s canal.instance.global.mode # Globaler Konfigurationslademoduscanal.instance.global.lazy # Globaler Lazy-Moduscanal.instance.global.manager.address # Linkinformationen des globalen Manager-Konfigurationsmoduscanal.instance.global.spring.xml # Komponentendatei des globalen Spring-Konfigurationsmoduscanal.instance.example.mode Kanal.Instanz.Beispiel.lazy canal.instance.example.spring.xml # Konfigurationsdefinition auf Instanzebene. Wenn konfiguriert, wird der globale Konfigurationsdefinitionsmodus automatisch überschriebencanal.instance.tsdb.enable # Ob die Aufzeichnungsfunktion der Zeitreihenversion der Tabelle meta aktiviert werden sollcanal.instance.tsdb.dir # Lokaler Speicherpfad der Zeitreihenversion. Der Standard ist das Instanzverzeichniscanal.instance.tsdb.url # Datenbankverbindungsadresse der Zeitreihenversion. Der Standard ist die lokal eingebettete Datenbankcanal.instance.tsdb.dbUsername # Datenbankverbindungskonto der Zeitreihenversioncanal.instance.tsdb.dbPassword # Datenbankverbindungskennwort der Zeitreihenversion 2.Instanz.Eigenschaften canal.id # Eindeutige Kennung für jede Instanz des Canal-Serverscanal.ip # Lokale IP-Informationen, die an den Canal-Server gebunden sind. Wenn nicht konfiguriert, wird standardmäßig eine lokale IP ausgewählt, um den Dienst zu startencanal.port # Port für den Canal-Server, um den Socket bereitzustellen servicecanal.zkServers # Verbindungsadresse des Canal-Servers für die Verbindung mit dem Zookeeper-Cluster, zum Beispiel: 10.20.144.22:2181,10.20.144.23:2181 canal.zookeeper.flush.period # Die Aktualisierungshäufigkeit der persistenten Kanaldaten für Zookeeper in ms canal.instance.memory.batch.mode # Daten-Cache-Modus im Canal-Speicher# 1. ITEMSIZE: Begrenzung entsprechend buffer.size, begrenzt nur die Anzahl der Datensätze# 2. MEMSIZE: begrenzt die Größe der zwischengespeicherten Datensätze entsprechend der Größe von buffer.size * buffer.memunit; canal.instance.memory.buffer.size # Die Anzahl der Pufferdatensätze, die im Speicher von Canal zwischengespeichert werden können, muss ein Exponent von 2 seincanal.instance.memory.buffer.memunit # Die Einheitengröße des Speicherdatensatzes, standardmäßig 1 KB, und wird mit buffer.size kombiniert, um die endgültige Speichernutzungsgröße zu bestimmencanal.instance.transactions.size # Die maximal unterstützte Länge der vollständigen Transaktionsauflösung. Nach Überschreiten dieser Länge kann eine Transaktion in mehrere Übermittlungen an den Canal-Speicher aufgeteilt werden, und die vollständige Sichtbarkeit der Transaktion kann nicht garantiert werdencanal.instance.fallbackIntervalInSeconds # Wenn Canal zu MySQL wechselt, die Zeit, die es braucht, um nach vorne zu schauen, wenn es in der neuen MySQL-Datenbank nach Binlog sucht, Einheiten s # Beschreibung: Es kann zu Verzögerungen beim Parsen oder Taktinkonsistenzen in den MySQL-Master- und -Slave-Datenbanken kommen. Um sicherzustellen, dass keine Daten verloren gehen, ist ein Rollback für eine gewisse Zeit erforderlich canal.instance.detecting.enable # Ob Heartbeat-Check aktiviert werden soll canal.instance.detecting.sql # Heartbeat-Check SQL, bei doppeltem Schlüsselupdate in retl.xdual values(1,now()) einfügen x=now() canal.instance.detecting.interval.time # Heartbeat-Prüffrequenz, Einheit s canal.instance.detecting.retry.threshold # Wiederholungszeit der Heartbeat-Prüfung fehlgeschlagencanal.instance.detecting.heatbeatHaEnable # Ob die automatische MySQL-Umschaltung aktiviert werden soll, nachdem die Heartbeat-Prüfung fehlgeschlagen ist# Hinweis: Wenn beispielsweise die Heartbeat-Prüfung häufiger als der Schwellenwert fehlschlägt und diese Konfiguration wahr ist, stellt Canal automatisch eine Verbindung zur MySQL-Standby-Datenbank her, um Binlog-Daten abzurufencanal.instance.network.receiveBufferSize # Netzwerkverbindungsparameter, SocketOptions.SO_RCVBUF canal.instance.network.sendBufferSize # Netzwerkverbindungsparameter, SocketOptions.SO_SNDBUF canal.instance.network.soTimeout # Netzwerkverbindungsparameter, SocketOptions.SO_TIMEOUT 1.5.4.kanal.mq.dynamischesThema Referenz: https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart?tdsourcetag=s_pctim_aiomsg 1.6. Problemlösung 1. Beim Ausführen
Lösung: Hinweis: In der neuen Version Beim Starten der neuen Version von
Problemumgehung Fügen Sie den Parameter Im
Problemumgehung Löschen Sie die Datei 1.7. ReferenzenKanal (inkrementelles Abonnement und Verbrauch basierend auf dem MySQL-Datenbank-Binlog) Canal Admin baut einen Canal-Cluster auf und erlebt Canal lässt sich in RabbitMQ integrieren Canal Series - Einführung in die Konfigurationsdatei Dies ist das Ende dieses Artikels über das superdetaillierte Tutorial zur Installation und Bereitstellung von mysql-canal-rabbitmq. Weitere Informationen zur Installation und Bereitstellung von mysql-canal-rabbitmq finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Acht Regeln für effektive Webformulare
>>: 100 Möglichkeiten, die Farbe eines Bildes mit CSS zu ändern (sammelnswert)
Die ersten Computer konnten nur ASCII-Zeichen ver...
Führen Sie die Anweisung „create table“ in der Da...
vmware vsphere 6.5 ist die klassische Version der...
Inhaltsverzeichnis Vorwort -Link Benutzerdefinier...
Deinstallieren Sie das vom System bereitgestellte...
Inhaltsverzeichnis 1. Verwendung von Pfeilfunktio...
v-for-Richtlinie Wenn wir von Listen sprechen, mü...
Inhaltsverzeichnis Vorwort 1. Konfigurieren Sie d...
Machen Sie einen leeren Bereich für Taobao: Wenn ...
getElementById kann das Objekt nicht abrufen Beim...
1. Voraussetzungen JDK wurde installiert echo $PA...
Geben Sie ssh ein und geben Sie den folgenden Bef...
Standardmäßig erfolgt das Lesen und Schreiben von...
Die eigene Quelle von Ubuntu stammt aus China, da...
Wie debuggt man eine Seite auf dem iPad? Wenn Sie ...