1、canal.deployer-1.1.7\conf\canal.properties 修改
添加多个数据来源
#数据源 example example1 对应canal.deployer-1.1.7\conf 下的两个目录
canal.destinations = example,example1
2、 example目录下的 instance.properties内容 主要修改以下四项 数据源mysql的地址 端口 账号密码和需要同步的数据库表
canal.instance.master.address=127.0.0.1:3306
canal.instance.dbUsername=root
canal.instance.dbPassword=zsj381599113QQ
canal.instance.filter.regex=mytest.prj_bridge,mytest.prj_health_rule
canal.mq.topic=example
3、example1目录下的 instance.properties内容 主要修改以下四项 数据源mysql的地址 端口 账号密码和需要同步的数据库表
canal.instance.master.address=172.16.68.6:3308
canal.instance.dbUsername=root
canal.instance.dbPassword=123456
canal.instance.filter.regex=mytest2.prj_bridge,mytest2.prj_health_rule
canal.mq.topic=example1
canal.deployer 配置结束,启动
canal.adapter 配置步骤
1、canal.adapter-1.1.7\conf\application.yml 配置文件如下
server:
port: 8081
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
default-property-inclusion: non_null
canal.conf:
mode: tcp #tcp kafka rocketMQ rabbitMQ
flatMessage: true
zookeeperHosts:
syncBatchSize: 1000
retries: -1
timeout:
accessKey:
secretKey:
consumerProperties:
# canal.deployer的地址和端口
canal.tcp.server.host: 127.0.0.1:11111
canal.tcp.batch.size: 500
srcDataSources:
defaultDS: # 对应canal.adapter-1.1.7\conf\rdb下的配置文件中的dataSourceKey的value值
#数据源1
url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true
username: root
password: zsj381599113QQ
datasource1: # 对应canal.adapter-1.1.7\conf\rdb下的配置文件中的dataSourceKey的value值
#数据源2
url: jdbc:mysql://172.16.68.6:3308/mytest2?useUnicode=true
username: root
password: 123456
canalAdapters:
- instance: example # example对应路径canal.deployer-1.1.7\conf\example 和canal.adapter-1.1.7\conf\rdb下的配置文件中的 destination的value值
groups:
- groupId: g1 # g1对应canal.adapter-1.1.7\conf\rdb下的配置文件中的 groupId的value值
outerAdapters:
- name: rdb #rdb对应路径canal.adapter-1.1.7\conf\rdb
key: mysql1 # mysql1 对应 canal.adapter-1.1.7\conf\rdb下的配置文件中的outerAdapterKey的value值
properties:
#目标数据库信息
jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.url: jdbc:mysql://127.0.0.1:3306/mytest2?useUnicode=true
jdbc.username: root
jdbc.password: zsj381599113QQ #zsj381599113QQ
druid.stat.enable: false
druid.stat.slowSqlMillis: 1000
- name: rdb #rdb对应路径canal.adapter-1.1.7\conf\rdb
key: mysql2 # mysql2 对应 canal.adapter-1.1.7\conf\rdb下的配置文件中的outerAdapterKey的value值
properties:
#目标数据库信息
jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.url: jdbc:mysql://127.0.0.1:3306/mytest2?useUnicode=true
jdbc.username: root
jdbc.password: zsj381599113QQ # zsj381599113QQ
druid.stat.enable: false
druid.stat.slowSqlMillis: 1000
- instance: example1 # example1对应路径canal.deployer-1.1.7\conf\example1 和canal.adapter-1.1.7\conf\rdb下的配置文件中的 destination的value值
groups:
- groupId: g2 # g2对应canal.adapter-1.1.7\conf\rdb下的配置文件中的 groupId的value值
outerAdapters:
- name: rdb #rdb对应路径canal.adapter-1.1.7\conf\rdb
key: mysql3 # mysql3 对应 canal.adapter-1.1.7\conf\rdb下的配置文件中的outerAdapterKey的value值
properties:
#目标数据库信息
jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.url: jdbc:mysql://127.0.0.1:3306/mytest2?useUnicode=true
jdbc.username: root
jdbc.password: zsj381599113QQ #zsj381599113QQ
druid.stat.enable: false
druid.stat.slowSqlMillis: 1000
- name: rdb #rdb对应路径canal.adapter-1.1.7\conf\rdb
key: mysql4 # mysql4 对应 canal.adapter-1.1.7\conf\rdb下的配置文件中的outerAdapterKey的value值
properties:
#目标数据库信息
jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.url: jdbc:mysql://127.0.0.1:3306/mytest2?useUnicode=true
jdbc.username: root
jdbc.password: zsj381599113QQ # zsj381599113QQ
druid.stat.enable: false
druid.stat.slowSqlMillis: 1000
2、canal.adapter-1.1.7\conf\rdb 目录下4个yml文件如下
mysql1.yml
dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: mysql1
concurrent: true
dbMapping:
#源数据库
database: mytest
#源数据库表
table: prj_bridge
#目标数据库表
targetTable: prj_bridge
targetPk:
id: id
#表字段一样全部映射
mapAll: true
commitBatch: 100 # 批量提交的大小
mysql2.yml
dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: mysql2
concurrent: true
dbMapping:
#源数据库
database: mytest
#源数据库表
table: prj_health_rule
#目标数据库表
targetTable: prj_health_rule
targetPk:
id: id
#表字段一样全部映射
mapAll: true
commitBatch: 100 # 批量提交的大小
mysql3.yml
dataSourceKey: datasource1
destination: example1
groupId: g2
outerAdapterKey: mysql3
concurrent: true
dbMapping:
#源数据库
database: mytest2
#源数据库表
table: prj_bridge
#目标数据库表
targetTable: prj_bridge
targetPk:
id: id
#表字段一样全部映射
mapAll: true
commitBatch: 100 # 批量提交的大小
mysql4.yml
dataSourceKey: datasource1
destination: example1
groupId: g2
outerAdapterKey: mysql4
concurrent: true
dbMapping:
#源数据库
database: mytest2
#源数据库表
table: prj_health_rule
#目标数据库表
targetTable: prj_health_rule
targetPk:
id: id
#表字段一样全部映射
mapAll: true
commitBatch: 100 # 批量提交的大小
canal.adapter配置结束,启动即可