https://github.com/alibaba/canal/wiki/AdminGuide
canal.instance.filter.regex
監控哪些表的正則配置 如下:
mysql 數據解析關注的表,Perl正則表達式. 多個正則之間以逗號(,)分隔,轉義符需要雙斜杠(\\) 常見例子: 1. 所有表:.* or .*\\..* 2. canal schema下所有表: canal\\..* 3. canal下的以canal打頭的表:canal\\.canal.* 4. canal schema下的一張表:canal.test1 5. 多個規則組合使用:canal\\..*,mysql.test1,mysql.test2 (逗號分隔) 注意:此過濾條件只針對row模式的數據有效(ps. mixed/statement因為不解析sql,所以無法准確提取tableName進行過濾)
instance.xml配置文件
目前默認支持的instance.xml有以下幾種:
- spring/memory-instance.xml
- spring/file-instance.xml
- spring/default-instance.xml
- spring/group-instance.xml
memory-instance.xml介紹:
所有的組件(parser , sink , store)都選擇了內存版模式,記錄位點的都選擇了memory模式,重啟后又會回到初始位點進行解析
特點:速度最快,依賴最少(不需要zookeeper)
場景:一般應用在quickstart,或者是出現問題后,進行數據分析的場景,不應該將其應用於生產環境
file-instance.xml介紹:
所有的組件(parser , sink , store)都選擇了基於file持久化模式,注意,不支持HA機制.
特點:支持單機持久化
場景:生產環境,無HA需求,簡單可用.
default-instance.xml介紹:
所有的組件(parser , sink , store)都選擇了持久化模式,目前持久化的方式主要是寫入zookeeper,保證數據集群共享.
特點:支持HA
場景:生產環境,集群化部署.
group-instance.xml介紹:
主要針對需要進行多庫合並時,可以將多個物理instance合並為一個邏輯instance,提供客戶端訪問。
場景:分庫業務。 比如產品數據拆分了4個庫,每個庫會有一個instance,如果不用group,業務上要消費數據時,需要啟動4個客戶端,分別鏈接4個instance實例。使用group后,可以在canal server上合並為一個邏輯instance,只需要啟動1個客戶端,鏈接這個邏輯instance即可.