使用canal.deployer-1.1.7和canal.adapter-1.1.7实现mysql多数据源数据同步一个目标库

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配置结束,启动即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非ban必选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值