##簡介: 基於數據庫增量(模擬MySQL slave的交互協議)日誌解析,提供增量數據訂閱和消費(客戶端與canal創建關係)mysql
安裝版本:1.1.0 gitgit
##環境需求:github
##目錄結構:spring
[root@wap canal]# tree -L 2 /usr/local/canal /usr/local/canal ├── bin #啓動、關閉、重啓命令 │ ├── restart.sh │ ├── startup.bat │ ├── startup.sh │ └── stop.sh ├── conf #配置文件目錄 │ ├── canal.properties #canal程序配置文件 │ ├── example #數據庫實例配置目錄,一個實例一個目錄 │ │ ├── instance.properties #每一個實例單獨的配置文件 │ │ └── meta.dat #記錄binlog相關信息,防止重啓相關信息丟失 │ ├── logback.xml │ ├── metrics │ └── spring ├── lib │ ├── aopalliance-1.0.jar │ ├── aviator-2.2.1.jar .... └── logs ├── canal #canal程序自己日誌目錄 └── example #鏈接數據庫實例的日誌目錄
##配置說明:sql
###conf/canal.properties 主配置文件:數據庫
####canal.instance.global.spring.xml配置選項介紹 memory-instance.xml介紹:api
全部的組件(parser , sink , store)都選擇了內存版模式,記錄位點的都選擇了memory模式,重啓後又會回到初始位點進行解析 特色:速度最快,依賴最少(不須要zookeeper) 場景:通常應用在quickstart,或者是出現問題後,進行數據分析的場景,不該該將其應用於生產環境ide
default-instance.xml介紹:源碼分析
store選擇了內存模式,其他的parser/sink依賴的位點管理選擇了持久化模式,目前持久化的方式主要是寫入zookeeper,保證數據集羣共享. 特色:支持HA 場景:生產環境,集羣化部署.ui
group-instance.xml介紹:
主要針對須要進行多庫合併時,能夠將多個物理instance合併爲一個邏輯instance,提供客戶端訪問。 場景:分庫業務。 好比產品數據拆分了4個庫,每一個庫會有一個instance,若是不用group,業務上要消費數據時,須要啓動4個客戶端,分別連接4個instance實例。使用group後,能夠在canal server上合併爲一個邏輯instance,只須要啓動1個客戶端,連接這個邏輯instance便可.
###conf/example/instance.properties 實例配置
##配置式例: ###1. 多實例配置
cp -a conf/example conf/example_1
canal.destinations= example,example_1 $ cp -a conf/example conf/example_1 $ ./bin/restart.sh
高可用,集羣相關配置wiki中介紹,請參閱官網 源碼分析