配置说明
介绍配置之前,先了解下canal的配置加载方式:
Spring配置
spring配置的原理是将整个配置抽象为两部分:
xxxx-instance.xml (canal组件的配置定义,可以在多个instance配置中共享) xxxx.properties (每个instance通道都有各自一份定义,因为每个mysql的ip,帐号,密码等信息不会相同)
通过spring的PropertyPlaceholderConfigurer通过机制将其融合,生成一份instance实例对象,每个instance对应的组件都是相互独立的,互不影响
properties配置文件
properties配置分为两部分:
canal.properties (系统根配置文件) 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/file-instance.xml (spring目录相对于canal.conf.dir)
canal.instance.example.mode
canal.instance.example.lazy
canal.instance.example.spring.xml
…..
instance级别的配置定义,如有配置,会自动覆盖全局配置定义模式
命名规则:canal.instance.{name}.xxx
无
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集群的链接信息
例子:127.0.0.1:2181,127.0.0.1:2182
无
canal.zookeeper.flush.period
canal持久化数据到zookeeper上的更新频率,单位毫秒
1000
canal.file.data.dir
canal持久化数据到file上的目录
../conf (默认和instance.properties为同一目录,方便运维和备份)
canal.file.flush.period
canal持久化数据到file上的更新频率,单位毫秒
1000
canal.instance.memory.batch.mode
canal内存store中数据缓存模式
1. ITEMSIZE : 根据buffer.size进行