Canal學習筆記(服務端)


canal服務端

canal服務端有兩種運行模式,一種單機模式,一種HA運行模式(zk保證)

單機模式:同步的binlog節點信息保存在本地(/conf/{自定義分區文件夾}/),meta.dat

HA模式:同步的binlog節點信息在zk上

canal配置文件

canal配置文件分為兩類,

  一類是全局配置文件(/conf/canal.properties),里面定義了一些公共的全局參數,例如zk信息

  一類是啟動實例配置文件(/conf/{自定義分區文件夾}/instance.properties),里面定義了一些實例參數(每一個的實例參數可能都是不一樣的,例如slaveId不能重復),例如數據庫鏈接,slaveId等。

canal HA模式配置

  在全局配置文件(/conf/canal.properties)中配置zk信息、自定義分區名稱(需要和自定義分區文件夾保持一致)、實例全局配置,詳細如下:

  zk信息配置:

  自定義分區名稱、全局實例配置:

 

  在實例配置數據庫鏈接、slaveId,配置如下:

 

 canal HA模式服務端啟動過程

  canal服務端在啟動時首先鏈接zk,從zk上查找binlog同步節點信息,找到則從binlog同步節點信息開始dump binlog日志。

  如果沒有找到binlog同步節點信息(第一次啟動)則會去配置實例配置文件中查找binlog同步節點信息,找到則從binlog同步節點信息開始dump binlog日志,配置如下:

  如果實例配置文件中沒有配置binlog 同步節點信息,則服務端向mysql發送show master status查詢binlog的最后的位置信息,然后開始從這個位置信息 dump binlog日志。

指定binlog 節點信息 dump binlog

  單機模式:修改/conf/meta.dat里面的信息即可

  HA模式:修改zk上的cursor信息或者在全局配置文件中指定新的分區名稱,然后在實例配置文件配置信息即可

  需要配置的信息:"journalName":"mysql-bin.000007","position":407258,"serverId":42,"timestamp":1554806456000,可以只配置一個。

  建議:配置開始同步的binlog 時間戳,這樣最簡單,缺點是服務端在啟動時需要掃面mysql的binlog日志,找到指定的時間戳的binlog日志,可能比較耗費時間。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM