mysql-canal-rabbitmq のインストールと展開の非常に詳細なチュートリアル

mysql-canal-rabbitmq のインストールと展開の非常に詳細なチュートリアル

オリジナル

1.1. MySQL binlog を有効にする

1. my.cnfまたはmy.ini (Windows) を変更し、構成項目を追加します。

# binlog ログ保存パス log-bin=D:\env\mysql-5.7.28-winx64\binlog
# ログは各データ行が変更された形式を記録します binlog-format=ROW
# 現在のマシンのサービス ID。クラスターの場合は繰り返すことはできません。server_id=1

2. MySQL サービスを再起動した後、設定変数が有効かどうかを確認します。

mysql> '%log_bin%' のような変数を表示します。
+---------------------------------+----------------------+
| 変数名 | 値 |
+---------------------------------+----------------------+
| log_bin | オン |
| log_bin_basename | D:\env\mysql-5 |
| log_bin_index | D:\env\mysql-5.index |
| log_bin_trust_function_creators | オフ |
| log_bin_use_v1_row_events | オフ |
| sql_log_bin | オン |
+---------------------------------+----------------------+
セットに 6 行あり、警告 1 件 (0.00 秒)

mysqlデータベースのcanalユーザーを設定する

mysql -uroot -pで mysql にログインし、ユーザーcanalを作成して承認します。

'canal' によって識別されるユーザー canal を作成します。
*.* に対して 'canal'@'%' に SELECT、REPLICATION SLAVE、REPLICATION CLIENT 権限を付与します。
権限のフラッシュ;

1.2. RabbitMQ の交換とキューを構成する

1. 新しいQueueを作成する

2. 新しいExchangeを作成する

3. キューにバインドを設定し、 Exchange名とRouting keyを入力します。

1.3. 独立型水路の設置

1.3.1. ダウンロードとインストール

ダウンロードして解凍します。

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

最新バージョン1.1.5のインストール

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

設定ファイル

1.3.2.1. ノード構成ファイル canal.properties

# tcp bind ip、現在のノードのIPアドレス canal.ip = 192.168.2.108
# 図 1 に示すように、IP を Zookeeper に登録し、ZK の IP アドレスに登録します。
運河レジスタIP = 192.168.2.108

canal.zkServers = zk クラスター # tcp、kafka、RocketMQ、最新バージョン 1.1.5 は rabbitmq に直接接続できます
canal.serverMode = rabbitmq

# destinations、現在のサーバーにデプロイされたインスタンスリスト。各インスタンスフォルダの名前に対応します (../conf/<instance_name>) canal.destinations = example2

# MQ サーバーのアドレスを設定します。ここに rabbitmq サーバーのアドレスがあります #!! ここでダウンロードした後のデフォルト設定は、IP: ポートを設定することです # rabbitmq ではここでポートを設定する必要はありません canal.mq.servers = 192.168.208.100

# 以下の項目はすべて、rabbitmq 構成をサポートする新しいバージョン 1.1.5 です canal.mq.vhost=/
canal.mq.exchange=example2-ex # rabbitmq の exchange 名を指定します。これは、「Exchange の作成」手順で作成した名前です。 canal.mq.username=admin # rabbitmq に接続するためのユーザー名 canal.mq.password=**** # rabbitmq に接続するためのパスワード canal.mq.aliyunuid= 

1.3.2.2. インスタンス設定ファイルinstance.properties

# 位置情報、データベース接続情報 canal.instance.master.address=192.168.2.108:3306
# 次の 2 つの設定では、上記で設定したアドレスのデータベースで `SHOW MASTER STATUS` を実行して取得したフィールド `File` と `Position` の値が必要です canal.instance.master.journal.name=mysql-5.7
キャナルインスタンスマスターポジション=674996

# テーブル メタ tsdb 情報、テーブル メタの時系列バージョンを記録するために tsdb を無効にする canal.instance.tsdb.enable=false

# ユーザー名/パスワード、インスタンス接続データのユーザー名とパスワード canal.instance.dbUsername=canal
canal.instance.dbPassword=運河

# テーブル正規表現、監視対象の通常のデータベーステーブルに一致する canal.instance.filter.regex=ysb\\.useropcosttimes_prod

# mq config では、rabbitmq がバインドされるルーティングを指定します。詳細については、「rabbitmq の構成」の 3 番目の手順を参照してください。
canal.mq.topic=example2-ルーティングキー

1.3.3. 運河サービスを開始する

Linux の起動スクリプト./bin/startup.sh 、Windows の起動スクリプトは./bin/startup.batです。Windows を例に挙げます。

λ .\startup.bat
CMDを開始:Java -xms128m -xmx512m -xx:permsize = 128m -djava.awt.headless = true -djava.net.preferipv4stack = true -dapplication.codeset = utf -8 -dfile.encod = utf -8 -server -xdebug UNJDWP:Transport = DT_Socket、Address = 9099、server = y、suspend = n -dappname = otter -canal -dlogback.configurationfile = "d:\ env \ green -1.5 \ bin \\ .. \ conf \ conf \ env \ \ .. \ conf \ canal.properties "-classpath" d:\ env \ green \ canal -1.5 \ bin \\ .. \ conf \ .. \ lib \*; d:\ env \ env \ awt.headless = true -djava.net.preferipv4stack = true -dapplication.codeset = utf -8 -dfile.encoding = utf -8 -server -xnoagent -djava.compiler = none -xrunjdwp:dt_socte = ned = n al -dlogback.configurationfile = "d:\ env \ green \ canal -1.5 \ bin \\ .. \ conf \ logback.xml" -dcanal.conf = \ env \ in \\ .. \ conf \ .. \ lib \*; d:\ env \ green \ canal-1.5 \ bin \\ .. \ conf "com.alibaba.otter.canal.deployer.canallauncher
Java HotSpot(TM) Server VM 警告: オプション PermSize=128m を無視します。8.0 でサポートが削除されました。
アドレス 9099 でトランスポート dt_socket をリッスンしています

最後に、データベース データを手動で変更するか、他の変更を待ってから、rabbitmq の監視をチェックしてプロセスが成功したかどうかを確認します。

1.4. クラスター チャネルのインストール

1.4.1. canal-admin をインストールする

1.4.1.1. ダウンロードとインストール

ダウンロードして解凍する

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

設定ファイル

application.yml

サーバ:
 ポート: 8089
春:
 ジャクソン:
  日付形式: yyyy-MM-dd HH:mm:ss
  タイムゾーン: GMT+8

spring.データソース:
 アドレス: 192.168.2.108:3306
 データベース: canal_manager
 ユーザー名: canal
 パスワード: 運河
 ドライバークラス名: com.mysql.jdbc.Driver
 # `serverTimezone=UTC` をデータベース接続文字列の末尾に追加する必要があります。そうしないと、起動時にタイムゾーン例外が報告されます。
 URL: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
 ひかり:
  最大プールサイズ: 30
  最小アイドル: 1

運河:
 # canal-adminUser の管理者アカウントとパスワードを設定します: admin
 管理者パスワード: 123456

canal_manager.sql

canal-adminデータを管理するデータベースでこの SQL スクリプトを実行して、いくつかのテーブルを初期化します。

1.4.1.3. canal-admin サービスを開始する

Linux の起動スクリプト./bin/startup.sh 、Windows の起動スクリプトは./bin/startup.batです。Windows を例に挙げます。

λ .\startup.bat
開始コマンド: 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 - PID 50696 の Memento-PC で CanalAdminApplication を起動しています (D:\env\green\canal-1.1.5-admin\lib\canal-admin-server-1.1.5-SNAPSHOT.jar が Memento によって D:\env\green\canal-1.1.5-admin\bin で起動されました)
2020-04-13 20:01:39.527 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - アクティブなプロファイルが設定されていません。デフォルトのプロファイルにフォールバックします: default
2020-04-13 20:01:39.566 [main] INFO osbwscAnnotationConfigServletWebServerApplicationContext - org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@13a5bf6 を更新しています: 起動日 [Mon Apr 13 20:01:39 CST 2020]; コンテキスト階層のルート
2020-04-13 20:01:41.149 [main] INFO osboot.web.embedded.tomcat.TomcatWebServer - Tomcat がポート 8089 (http) で初期化されました
2020-04-13 20:01:41.166 [main] INFO org.apache.coyote.http11.Http11NioProtocol - ProtocolHandler を初期化しています ["http-nio-8089"]
2020-04-13 20:01:41.176 [main] INFO org.apache.catalina.core.StandardService - サービスを開始しています [Tomcat]
2020-04-13 20:01:41.177 [main] INFO org.apache.catalina.core.StandardEngine - サーブレット エンジンを起動しています: Apache Tomcat/8.5.29
...
2020-04-13 20:01:42.996 [main] INFO org.apache.coyote.http11.Http11NioProtocol - ProtocolHandler ["http-nio-8089"] を開始しています
2020-04-13 20:01:43.007 [main] INFO org.apache.tomcat.util.net.NioSelectorPool - サーブレットの書き込み/読み取りに共有セレクターを使用しています
2020-04-13 20:01:43.019 [main] INFO osboot.web.embedded.tomcat.TomcatWebServer - Tomcat がポート 8089 (http) でコンテキスト パス '' で起動しました
2020-04-13 20:01:43.024 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - CanalAdminApplication を 3.919 秒で起動しました (JVM は 5.241 秒実行中)

1.4.1.4. 注記

データベースに接続するcanal-adminアカウントには、テーブルの作成、データの読み取りと書き込みの権限が必要です。上記で作成したcanalアカウントを引き続き使用する場合は、権限を拡張する必要があります。

*.* のすべての権限を 'canal'@'%' に付与します。

1.4.2. スタンドアロンのcanal-serverノードを追加する

1.4.2.1. キャナルサーバーノードサービスを開始する

スタンドアロンの canal-server は通常どおり起動します。このとき、canal-server によってデフォルトでロードされる../conf/canal.properties内の構成情報は、実行されたスクリプトのコマンドプロンプトから取得できる../bin/startup.bat[startup.sh]スクリプトから取得できます。

1.4.2.2. 新しいスタンドアロンサーバーを作成する

canal-adminでスタンドアロンserverを作成する

server起動したcanal-serverノードを自動的に識別しますが、 adminに引き継がれた後は、 ../conf/canal.properties構成ファイルを自動的にロードしません。サーバーによってロードされたデフォルトの構成情報を表示するには、右端の操作-配置をクリックします。


1.3.2で設定された../conf/canal.propertiesの設定情報を手動でこの設定にコピーして上書きする必要があります。

1.4.2.3. 新しいインスタンスを作成する

単一マシンのcanal-server構成のインスタンスexample2に対応する新しいinstance canal-adminに手動で作成します。同様に、 ./conf/<實例名稱>/instance.properies構成ファイルをadminに手動でコピーする必要があります。

!! instanceを作成または起動するときは、まずインスタンス フォルダー内のmeta.datファイルを削除し、2 つの構成項目canal.instance.master.journal.name=...canal.instance.master.position=...を更新することに注意してください。

1.4.3. クラスターcanal-serverノードの追加

1.4.3.1. 新しいクラスターを作成する

クラスター名を指定し、クラスターにバインドされたzookeeperクラスター アドレスを構成する必要があります。

作成が成功したら、右端の操作-主配置でクラスタの一般的なサーバ設定情報を設定します。

以前に設定した../conf/canal.properties設定をここに直接コピーし、使用する前に少し変更することもできます。

# チャンネル管理者設定
運河管理者マネージャー = 192.168.2.108:8089

canal.instance.global.mode = マネージャー

1.4.3.2. 新しいサーバーを作成する

1.4.3.1で設定したクラスター名である、所属するクラスターを指定します。

canal-serverノード サービスが以前に起動されている場合、新しく作成されたサーバーは自動的に啟動として認識されます。それ以外の場合は斷開ます。

ここで特に注意する必要があることが 1 つあります。

注意深い人は、 canal.properties構成ファイルに加えて、 canal_local.properties構成ファイルもあることに気付くかもしれません。後者は前者よりも内容がはるかに少なくなっています。これは、このファイルが、 canalクラスターの構築時にローカル ノード構成ファイルを作成するために使用されるのに対し、前者の構成ファイルのその他の情報はcanal-adminによって集中的に構成および管理されるためです。

./bin/startup.bat[startup.sh]起動スクリプトでは、 canal.properties構成ファイルがデフォルトで読み込まれ、サービスはスタンドアロン モードで起動されます。

Windows 上でcanalクラスターを構築する場合は、 startup.bat手動で変更する必要があります。青いマークは%canal_conf%変数を読み込むための構成ファイル パスなので、赤いボックス内の変数を次のように調整する必要があります。

@rem canal_conf=... を設定します。
canal_conf=%conf_dir%\canal_local.properties を設定します

起動時にcanal_local.properties設定ファイルをロードする

1.4.3.3. 新しいインスタンスを作成する

ここでの構成は、スタンドアロン サーバーのインスタンスの1.4.2.3の構成に基づいて調整することもできます。

# 2. 位置情報、MySQL が同期を開始する binlog 位置情報を指定します canal.instance.master.address=192.168.0.25:63306
canal.instance.master.journal.name=mysql-bin.001349
キャナルインスタンスマスターポジション=198213313

# 3. ユーザー名/パスワード、MySQL を同期するためのデータベースのユーザー名とパスワードを設定します canal.instance.dbUsername=xxxx
canal.instance.dbパスワード=xxx

# 4. テーブル正規表現、同期するデータテーブルに一致する正規表現 canal.instance.filter.regex=xxxx

# 5. mq config、mysql のルーティングバインディングを指定します。`1.2.3` を参照してください。
canal.mq.topic=example2-ルーティングキー

保存後、操作でインスタンスを開始できます

ここでインスタンスを起動できない場合は、次の手順で確認・操作を行ってください。

クラスターの主配置内のcanal.destinationsに新しく作成されたinstanceの名前が含まれているかどうかを確認します。canal canal-serverノードがcanal_local.properties構成ファイルをロードしたかどうかを確認します。インスタンス フォルダー内の.dbファイルと.batファイルを削除し、インスタンス構成ファイル内のcanal.instance.master.positionbinglog位置を更新して、 instanceを起動します。

1.5. 運河構成手順

1.5.1. 運河のプロパティ

  1. canal.ip、ノードIP
  2. canal.register.ip、zookeeper に登録された IP
  3. canal.zkServers、zk クラスター
  4. tsdbを有効にし、テーブルメタの時系列バージョン記録機能を有効にするかどうか
  5. // 5. canal.serverMode を rabbitmq に設定、デフォルトは tcp
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.dbユーザー名 = canal
canal.instance.tsdb.dbPassword = 運河

5.canal.destinations、現在のクラスターにデプロイされているインスタンスのリスト

6.canal.mq.servers、Rabbitmqクラスタアドレスを設定します。ここでポートを追加することはできません

1.5.2. インスタンスプロパティ

  1. canal.instance.master.address、マスターデータベースアドレス
  2. canal.instance.master.journal.name、データベースで show master status を実行したときのファイル値
  3. canal.instance.master.position、データベース内のマスターステータスを表示する位置の値
  4. canal.instance.tsdb.enable=false、tsdb を無効にする
  5. canal.instance.dbUsername、インスタンス データベースのユーザー名
  6. canal.instance.dbPassword、インスタンス データベース パスワード
  7. canal.instance.filter.regexは、同期する必要があるテーブルと一致します
  8. canal.mq.topic、canalはmqのトピック名を登録します

1.5.3. プロパティ設定ファイル

properties設定は2つの部分に分かれています

canal.properties (システム ルート構成ファイル)
instance.properties (インスタンスレベルの構成ファイル、インスタンスごとに 1 つ)

1.運河のプロパティ

canal.destinations # 現在のサーバーにデプロイされているインスタンスのリスト canal.conf.dir # conf ディレクトリへのパス canal.auto.scan # 自動インスタンス スキャンを有効にする # true に設定すると、canal.conf.dir ディレクトリの下のインスタンス構成の変更が自動的にトリガーされます # 1. 追加されたインスタンス ディレクトリ: インスタンス構成の読み込みをトリガーし、lazy が true の場合は自動的に開始します。
# 2. インスタンス ディレクトリの削除: 対応するインスタンス構成をアンインストールし、起動している場合はシャットダウンします。
# 3. instance.properties ファイルの変更: インスタンス構成を再読み込みし、起動されている場合は自動的に再起動します。
canal.auto.scan.interval # インスタンスの自動スキャン間隔、単位は s
canal.instance.global.mode # グローバル構成読み込みモードcanal.instance.global.lazy # グローバル遅延モードcanal.instance.global.manager.address # グローバル マネージャー構成モードのリンク情報canal.instance.global.spring.xml # グローバル Spring 構成モードのコンポーネント ファイルcanal.instance.example.mode
運河インスタンス例遅延
canal.instance.example.spring.xml
# インスタンスレベルの構成定義。設定されている場合、グローバル構成定義が自動的に上書きされます。モードcanal.instance.tsdb.enable # テーブルの時系列バージョン記録機能を有効にするかどうか。metacanal.instance.tsdb.dir # 時系列バージョンのローカル ストレージ パス。デフォルトはインスタンス ディレクトリです。canal.instance.tsdb.url # 時系列バージョンのデータベース接続アドレス。デフォルトはローカルの組み込みデータベースです。canal.instance.tsdb.dbUsername # 時系列バージョンのデータベース接続アカウントcanal.instance.tsdb.dbPassword # 時系列バージョンのデータベース接続パスワード

2.インスタンスプロパティ

canal.id # 各 Canal サーバー インスタンスの一意の識別子canal.ip # Canal サーバーにバインドされたローカル IP 情報。設定されていない場合は、サービスを開始するためにデフォルトでローカル IP が選択されますcanal.port # Canal サーバーがソケット サービスを提供するポートcanal.zkServers # Zookeeper クラスターに接続するための Canal サーバーの接続アドレス。例: 10.20.144.22:2181,10.20.144.23:2181
canal.zookeeper.flush.period # zookeeper への canal 永続データの更新頻度 (ミリ秒単位)
canal.instance.memory.batch.mode # キャナル メモリ ストアのデータ キャッシュ モード# 1. ITEMSIZE: buffer.size に従って制限し、レコードの数のみを制限します# 2. MEMSIZE: buffer.size * buffer.memunit のサイズに従って、キャッシュされたレコードのサイズを制限します。
canal.instance.memory.buffer.size # キャナル メモリ ストアにキャッシュできるバッファ レコードの数。2 の指数である必要があります。canal.instance.memory.buffer.memunit # メモリ レコードの単位サイズ。デフォルトは 1 KB で、buffer.size と組み合わせて最終的なメモリ使用量のサイズを決定します。canal.instance.transactions.size # サポートされているトランザクションの完全な解決の最大長。この長さを超えると、トランザクションはキャナル ストアへの複数の送信に分割される可能性があり、トランザクションの完全な可視性は保証されません。canal.instance.fallbackIntervalInSeconds # キャナルが MySQL に切り替わるときに、新しい MySQL データベースで binlog を探すときに前方参照する必要がある時間。単位は s
# 説明: MySQL マスターおよびスレーブ データベースで解析の遅延またはクロックの不一致が発生する可能性があります。データが失われないようにするには、一定期間ロールバックする必要があります canal.instance.detecting.enable # ハートビート チェックを有効にするかどうか canal.instance.detecting.sql # ハートビート チェック sql、重複キー更新 x=now() で retl.xdual values(1,now()) に挿入
canal.instance.detecting.interval.time # ハートビートチェック頻度、単位は秒
canal.instance.detecting.retry.threshold # ハートビート チェック失敗の再試行回数canal.instance.detecting.heatbeatHaEnable # ハートビート チェックが失敗した後、MySQL 自動切り替えを有効にするかどうか# 注: たとえば、ハートビート チェックがしきい値を超えて失敗した場合、この構成が true であれば、canal は自動的に MySQL スタンバイ データベースに接続して binlog データを取得しますcanal.instance.network.receiveBufferSize # ネットワーク接続パラメータ、SocketOptions.SO_RCVBUF
canal.instance.network.sendBufferSize # ネットワーク接続パラメータ、SocketOptions.SO_SNDBUF
canal.instance.network.soTimeout # ネットワーク接続パラメータ、SocketOptions.SO_TIMEOUT

1.5.4. canal.mq.dynamicTopic

参考: https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart?tdsourcetag=s_pctim_aiomsg

1.6. 問題解決

1. Windowsでcanalを起動するためにstartup.batを実行すると、次の例外が発生します。

[ch.qos.logback.classic.LoggerContext] のインスタンス化に失敗しました
報告された例外:
ch.qos.logback.core.LogbackException: ファイル [file:/D:/env/green/canal/conf/] のファイル名拡張子が予期しません。.groovy または .xml のいずれかである必要があります。
ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:79) で
ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:152) で
org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85) で
org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55) で
org.slf4j.LoggerFactory.bind(LoggerFactory.java:141) で
org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:120) で
org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:331) で
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:283) で
org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:304) で
com.alibaba.otter.canal.deployer.CanalLauncher.<clinit>(CanalLauncher.java:29) で

解決:
startup.batの次のコード行をコメントアウトします。
@rem set logback_configurationFile=%conf_dir%\logback.xml

注意: この問題は新しいバージョン1.1.5では発生しません。ファイル1.1.5のこの行はコメント アウトされていません。

canal-admin 1.1.5の新しいバージョンを起動すると、次の例外が発生します。

2020-04-10 18:55:40.406 [main] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - プールの初期化中に例外が発生しました。
java.sql.SQLException: サーバーのタイム ゾーン値 '�й���׼ʱ��' は認識されないか、複数のタイム ゾーンを表します。タイム ゾーン サポートを利用する場合は、より具体的なタイム ゾーン値を使用するようにサーバーまたは JDBC ドライバー (serverTimezone 構成プロパティ経由) を構成する必要があります。

回避策

spring.datasource.urlで設定された mysql 接続アドレスにパラメータ&serverTimezone=UTCを追加します。

Instanceログに例外が表示されますerrno = 1236, sqlstate = HY000 errmsg = log event entry exceeded max_allowed_packet;

2020-04-13 13:06:09.507 [destination = example3、address = /192.168.2.108:3306、EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example3[java.io.IOException: 受信エラー パケット: errno = 1236、sqlstate = HY000 errmsg = ログ イベント エントリが max_allowed_pa​​cket を超えました。マスターの max_allowed_pa​​cket を増やします。最初のイベント 'mysql-5.7' は 671745、最後のイベントは 'D:\env\mysql-5.7' から 673181 で読み取られ、最後のバイトは 'D:\env\mysql-5.7' から 673200 で読み取られました。
com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) で
com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:235) で
com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:265) で
java.lang.Thread.run(ソース不明)
]

回避策

canal/confの下の対応するインスタンス内のmeta.datファイルを削除し、 canal-adminによって自動的に再生成できるようにします。

1.7. 参考文献

キャナル (MySQL データベース binlog に基づく増分サブスクリプションと消費)

Canal AdminはCanalクラスターを構築し、

Canal が RabbitMQ と統合

運河シリーズ - 設定ファイルの紹介

mysql-canal-rabbitmq のインストールとデプロイメントに関する非常に詳細なチュートリアルに関するこの記事はこれで終わりです。mysql-canal-rabbitmq のインストールとデプロイメントの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL マスタースレーブスイッチチャネルの問題の解決策
  • MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal
  • SpringBootはElasticsearchを統合してインデックス作成とドキュメント操作を実装します
  • elasticsearchを使用してインデックスデータを定期的に削除する
  • Canalを使用してMySQLデータベースを監視し、elasticsearchインデックスのリアルタイム更新を実装する

<<:  CSS を使用して画像の色を変更する 100 の方法 (収集する価値あり)

>>:  VMware インストール後に仮想ネットワーク カードが表示されない問題について

推薦する

MySql データベース クエリの特殊コマンド

まずMySQLのインストールMySQLソフトウェアをダウンロードし、インストールパスを変更しますMy...

Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装

I. はじめにDockerテクノロジーは現在非常に人気があります。コンテナを介してプロジェクト環境を...

Reactにおけるキーの役割の詳細な説明

目次質問: ボタンをクリックすると、スパンの色が赤に変わりますか?上記の問題を分析します。 2番目の...

リクエスト数を制限するために Ajax 同時リクエストを実装するために js を使用するサンプル コード

問題の説明: 非同期リクエストの数が不確定な場合、数百の http リクエストが瞬時に発生したときに...

条件付きコメント形式の書き方とサンプルコード

フロントエンドエンジニアとして、IE は私たちにとって馴染み深いものであるはずです。設計案を実装する...

LinuxにPHP7をインストールする方法の詳細な説明

Linux に PHP7 をインストールするにはどうすればいいですか? 1. 依存パッケージをインス...

CSS3+JS による虫眼鏡モードの完璧な実装の詳細説明

約 1 年前、私は「虫眼鏡効果を模倣するいくつかの方法の原理の分析」という記事を書きました。当時、自...

なぜCSSをヘッドタグに配置する必要があるのか

考えてみてください。なぜcss 、 javascriptのようにbodyタグの末尾ではなく、 hea...

Nginx リクエスト制限の設定方法

Nginx は、多くの優れた機能を備えた強力で高性能な Web およびリバース プロキシ サーバーで...

CSS スキル コレクション - 古典の中の古典

リンク上の点線のボックスを削除しますコードをコピーコードは次のとおりです。 a:アクティブ、a:フォ...

なぜ Tomcat が起動できないのでしょうか?

目次現象:ポートの使用:ファイルにスペルミスがあります:現象: Tomcat がインストールされ、W...

トランザクション分離レベルのMySQLケース分析

目次1. 理論シリアル化可能繰り返し読み取りコミットされた読み取りコミットされていない読み取り2. ...

Vue プロジェクトでよく使用されるツール機能の概要

目次序文1. カスタムフォーカスコマンド1. 方法1 2. 方法2 3. 方法3 2. 入力ボックス...

面接官がmysqlのcharとvarcharの違いを尋ねたとき

目次charとvarcharの違いcharとvarcharの違い上記は、MySQL における cha...

React コンポーネント間で通信する 3 つの方法 (シンプルで使いやすい)

目次1. 親子コンポーネント通信2. クロスレベルコンポーネント通信1. レイヤーごとに値を渡す2....