canal簡介
早期,阿里巴巴B2B公司因爲存在杭州和美國雙機房部署,存在跨機房同步的業務需求。不過早期的數據庫同步業務,主要是基於trigger的方式獲取增量變更,不過從2010年開始,阿里系公司開始逐步的嘗試基於數據庫的日誌解析,獲取增量變更進行同步,由此衍生出了增量訂閱&消費的業務,從此開啓了一段新紀元。ps. 目前內部版本已經支持mysql和oracle部分版本的日誌解析,當前的canal開源版本支持5.7及以下的版本(阿里內部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48)
canal可以幹嘛:
基於日誌增量訂閱&消費支持的業務:
數據庫鏡像
數據庫實時備份
多級索引 (賣家和買家各自分庫索引)
search build
業務cache刷新
價格變化等重要業務消息
下載地址:鏈接: https://github.com/alibaba/canal/releases
RDS
有不少公司的生產環境數據庫用的是阿里雲的RDS,我們知道canal監聽我們自己服務器的數據庫只需要改改數據庫的配置就行了但是RDS怎麼改呢接下來讓我們開始
1 創建RDS賬號
登入到RDS控制檯
2.配置canal
進入到usr/local目錄下,在該目錄下使用如下命令新建canal文件夾
cd /usr/local
ls
mkdir canal
給予權限
//給canal賦予讀寫權限
chmod 777 canal
//給canal及其以下子目錄賦予讀寫權限
chmod -R 777 canal
使用工具將下載好的canal放置在canal文件下
解壓canal的壓縮包
tar -zxvf canal.deployer-1.1.4.tar.gz
解壓後會出現一些文件夾
- bin
啓動和停止的腳本 - conf
配置文件 - lib
一些jar包不用管 - log
存放canal日誌啓動好後可以到這裏來看日誌
修改canal的配置文件
進入到conf下的example下面會有一個instance.properties使用vim進行修改
wq保存退出,修改完成後,cd到bin目錄下使用如下命令啓動canal
./startup.sh
啓動完成進入logs下的canal查看日誌,如果看到這樣的那代表啓動成功
查看是否監聽成功,如果看到這個,那就代表監聽成功
c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^st_aiui.res_channel_resource$|^st_aiui.res_channel$
至此,canal監聽RDS成功