Canal使用場景
- 數據庫備份更新
- 搜索引擎索引更新&建立
- 業務緩存的更新
- 充當消息組件(訂單變更,商品資料變更等)
Canal環境部署
- 搭建Mysql
- 配置數據庫配置文件
- 增加以下配置信息
- log-bin=mysql-bin # 啟動binlog日志
- binlog-format=ROW # 選擇row模式
- server_id=1 # 配置mysql replaction需要定義,不能和 Canal的slaveId 重復
- 創建用戶
- create user canal identified by 'canal'
- grant select, replication slave,replication client on.to 'canal'@'%'
- 重啟數據庫
- 增加以下配置信息
- 搭建canal
- git地址 https://github.com/alibaba/canal 到 releases 下載所需版本
- 上傳文件到服務器,解壓文件
- 配置文件位置:conf/example/instance.properties
- 修改配置文件配置信息,slaveId, 源數據庫地址,數據庫用戶名及密碼
- 啟動服務
- ./bin/startup.sh
- 是否啟動成功
- logs/example/ 文件夾下example.log文件 start successfull.... 標示 啟動成功
Canal的使用
- 創建鏈接
- 三種鏈接模式
- 使用案例
2. 注意事項
1. Canal掛了后,數據庫日志如果沒產生新的分片時數據不會丟失。
如果mysql日志有了新的分片了,重啟Canal時還會報錯,解決辦法,刪除 conf/example/meta.dat 文件。(舊的消息沒有用的話)
2. 集群模式時,同時只有一台服務可以從mysql中讀取數據,在機器沒有掛的情況下,其他機器都在等待。