properties配置文件
properties配置分為兩部分:
1、canal.properties (系統根配置文件)
2、instance.properties (instance級別的配置文件,每個instance一份)
canal.properties介紹
canal配置主要分為兩部分:
1、instance列表定義 (列出當前server上有多少個instance,每個instance的加載方式是spring/manager等)
參數名字 | 參數說明 | 默認值 |
canal.destinations | 當前server上部署的instance列表 | 無 |
canal.conf.dir | conf/目錄所在的路徑 | ../conf |
canal.auto.scan | 開啟instance自動掃描 如果配置為true,canal.conf.dir目錄下的instance配置變化會自動觸發: a. instance目錄新增: 觸發instance配置載入,lazy為true時則自動啟動 b. instance目錄刪除:卸載對應instance配置,如已啟動則進行關閉 c. instance.properties文件變化:reload instance配置,如已啟動自動進行重啟操作 |
true |
canal.auto.scan.interval | instance自動掃描的間隔時間,單位秒 | 5 |
canal.instance.global.mode | 全局配置加載方式 | spring |
canal.instance.global.lazy | 全局lazy模式 | false |
canal.instance.global.manager.address | 全局的manager配置方式的鏈接信息 | 無 |
canal.instance.global.spring.xml | 全局的spring配置方式的組件文件 | classpath:spring/memory-instance.xml (spring目錄相對於canal.conf.dir) |
canal.instance.example.mode canal.instance.example.lazy canal.instance.example.spring.xml ..... |
instance級別的配置定義,如有配置,會自動覆蓋全局配置定義模式 命名規則:canal.instance.{name}.xxx |
無 |
canal.instance.tsdb.spring.xml | v1.0.25版本新增,全局的tsdb配置方式的組件文件 | classpath:spring/tsdb/h2-tsdb.xml (spring目錄相對於canal.conf.dir) |
2、common參數定義,比如可以將instance.properties的公用參數,抽取放置到這里,這樣每個instance啟動的時候就可以共享. 【instance.properties配置定義優先級高於canal.properties】
參數名字 | 參數說明 | 默認值 |
canal.id | 每個canal server實例的唯一標識,暫無實際意義 | 1 |
canal.ip | canal server綁定的本地IP信息,如果不配置,默認選擇一個本機IP進行啟動服務 | 無 |
canal.port | canal server提供socket服務的端口 | 11111 |
canal.zkServers | canal server鏈接zookeeper集群的鏈接信息 例子:10.20.144.22:2181,10.20.144.51:2181 |
無 |
canal.zookeeper.flush.period | canal持久化數據到zookeeper上的更新頻率,單位毫秒 | 1000 |
canal.instance.memory.batch.mode | canal內存store中數據緩存模式 1. ITEMSIZE : 根據buffer.size進行限制,只限制記錄的數量 2. MEMSIZE : 根據buffer.size * buffer.memunit的大小,限制緩存記錄的大小 |
MEMSIZE |
canal.instance.memory.buffer.size | canal內存store中可緩存buffer記錄數,需要為2的指數 | 16384 |
canal.instance.memory.buffer.memunit | 內存記錄的單位大小,默認1KB,和buffer.size組合決定最終的內存使用大小 | 1024 |
canal.instance.transactionn.size | 最大事務完整解析的長度支持 超過該長度后,一個事務可能會被拆分成多次提交到canal store中,無法保證事務的完整可見性 |
1024 |
canal.instance.fallbackIntervalInSeconds | canal發生mysql切換時,在新的mysql庫上查找binlog時需要往前查找的時間,單位秒 說明:mysql主備庫可能存在解析延遲或者時鍾不統一,需要回退一段時間,保證數據不丟 |
60 |
canal.instance.detecting.enable | 是否開啟心跳檢查 | false |
canal.instance.detecting.sql | 心跳檢查sql | insert into retl.xdual values(1,now()) on duplicate key update x=now() |
canal.instance.detecting.interval.time | 心跳檢查頻率,單位秒 | 3 |
canal.instance.detecting.retry.threshold | 心跳檢查失敗重試次數 | 3 |
canal.instance.detecting.heartbeatHaEnable | 心跳檢查失敗后,是否開啟自動mysql自動切換 說明:比如心跳檢查失敗超過閥值后,如果該配置為true,canal就會自動鏈到mysql備庫獲取binlog數據 |
false |
canal.instance.network.receiveBufferSize | 網絡鏈接參數,SocketOptions.SO_RCVBUF | 16384 |
canal.instance.network.sendBufferSize | 網絡鏈接參數,SocketOptions.SO_SNDBUF | 16384 |
canal.instance.network.soTimeout | 網絡鏈接參數,SocketOptions.SO_TIMEOUT | 30 |
canal.instance.filter.druid.ddl | 是否使用druid處理所有的ddl解析來獲取庫和表名 | true |
canal.instance.filter.query.dcl | 是否忽略dcl語句 | false |
canal.instance.filter.query.dml | 是否忽略dml語句 (mysql5.6之后,在row模式下每條DML語句也會記錄SQL到binlog中,可參考MySQL文檔) |
false |
canal.instance.filter.query.ddl | 是否忽略ddl語句 | false |
canal.instance.filter.table.error | 是否忽略binlog表結構獲取失敗的異常 (主要解決回溯binlog時,對應表已被刪除或者表結構和binlog不一致的情況) |
false |
canal.instance.filter.rows | 是否dml的數據變更事件 (主要針對用戶只訂閱ddl/dcl的操作) |
false |
canal.instance.filter.transaction.entry | 是否忽略事務頭和尾,比如針對寫入kakfa的消息時,不需要寫入TransactionBegin/Transactionend事件 | false |
canal.instance.binlog.format | 支持的binlog format格式列表 (otter會有支持format格式限制) |
ROW,STATEMENT,MIXED |
canal.instance.binlog.image | 支持的binlog image格式列表 (otter會有支持format格式限制) |
FULL,MINIMAL,NOBLOB |
canal.instance.get.ddl.isolation | ddl語句是否單獨一個batch返回 (比如下游dml/ddl如果做batch內無序並發處理,會導致結構不一致) |
false |
canal.instance.parser.parallel | 是否開啟binlog並行解析模式 (串行解析資源占用少,但性能有瓶頸, 並行解析可以提升近2.5倍+) |
true |
canal.instance.parser.parallelBufferSize | binlog並行解析的異步ringbuffer隊列 (必須為2的指數) |
256 |
canal.instance.tsdb.enable | 是否開啟tablemeta的tsdb能力 | true |
canal.instance.tsdb.dir | 主要針對h2-tsdb.xml時對應h2文件的存放目錄,默認為conf/xx/h2.mv.db | ${canal.file.data.dir:../conf}/${canal.instance.destination:} |
canal.instance.tsdb.url | jdbc url的配置 (h2的地址為默認值,如果是mysql需要自行定義) |
jdbc:h2:${canal.instance.tsdb.dir}/h2;CACHE_SIZE=1000;MODE=MYSQL; |
canal.instance.tsdb.dbUsername | jdbc url的配置 (h2的地址為默認值,如果是mysql需要自行定義) |
canal |
canal.instance.tsdb.dbPassword | jdbc url的配置 (h2的地址為默認值,如果是mysql需要自行定義) |
canal |
canal.instance.rds.accesskey | aliyun賬號的ak信息 (如果不需要在本地binlog超過18小時被清理后自動下載oss上的binlog,可以忽略該值) |
無 |
canal.instance.rds.secretkey | aliyun賬號的sk信息 (如果不需要在本地binlog超過18小時被清理后自動下載oss上的binlog,可以忽略該值) |
無 |