Canal常用配置


Canal 是mysql數據庫binlog的增量訂閱&消費組件。

基於日志增量訂閱&消費支持的業務:

  1. 數據庫鏡像
  2. 數據庫實時備份
  3. 多級索引 (賣家和買家各自分庫索引)
  4. search build
  5. 業務cache刷新
  6. 價格變化等重要業務消息
C# 開發者可以使用 CanalSharp 是阿里巴巴開源項目 Canal 的 .NET 客戶端。為 .NET 開發者提供一個更友好的使用 Canal 的方式。
 
# table regex 設置白名單,如果在instance.properties配置文件中進行該項配置,則在代碼中不應該再配置
# connector.subscribe(".*\\..*");,如果還在代碼中配置,則配置文件將會失效!!!
canal.instance.filter.regex = .*\\..*
# table black regex 設置黑名單
canal.instance.filter.black.regex =
 

所以當你只關心部分庫表更新時,設置了canal.instance.filter.regex,一定不要在客戶端調用CanalConnector.subscribe(".*\\..*"),不然等於沒設置canal.instance.filter.regex。

如果一定要調用CanalConnector.subscribe(".*\\..*"),那么可以設置instance.properties的canal.instance.filter.black.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進行過濾)


免責聲明!

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



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