Canal Adapter同步MySQL多实例到MySQL单实例

一:Canal配置kafka ServerMode

conf/canal.properties


canal.serverMode = kafka
..........
canal.mq.servers = xxxxx

二:Canal多instance中Kafka相关信息

/conf/example/instance.properties

canal.instance.master.address=xxxxxxxxxxxxx:3306
....................................
# mq config
canal.mq.topic=test_test1
# dynamic topic route by schema or table regex
#实际测试test库test1表与test2表对应topic
#canal.mq.dynamicTopic=test\\.test.*
#canal.mq.partition=0
# hash partition config
canal.mq.partitionsNum=3
canal.mq.partitionHash=test.test1:id

/conf/example1/instance.properties

canal.instance.master.address=xxxxxxxxxxxxx:3306
....................................
# mq config
canal.mq.topic=test_test2
# dynamic topic route by schema or table regex
#canal.mq.dynamicTopic=test\\.test.*
#canal.mq.partition=0
# hash partition config
canal.mq.partitionsNum=3
canal.mq.partitionHash=test.test2:id

三:Canal-Adapter配置(kafka模式,两个实例)

3.1 conf/application.yml(demo)


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
canal.conf:
  mode: kafka # kafka rocketMQ
  canalServerHost: xxxxxxxxxx:11111
  #  zookeeperHosts: xxxxxx:2181
  mqServers: xxxxxxxxx:9092 #or rocketmq
  #  flatMessage: true
  batchSize: 500
  syncBatchSize: 1000
  retries: 0
  timeout:
  accessKey:
  secretKey:
  srcDataSources:
    defaultDS:
      url: jdbc:mysql:/xxxxxxxx:3306/test?useUnicode=true
      username: root
      password: xxxxxxxxxx
    defaultDS1:
      url: jdbc:mysql://xxxxxxxxxx:3306/test?useUnicode=true
      username: root
      password: xxxxxxxxxx
  canalAdapters:
    - instance: test_test1 # canal instance Name or mq topic name
      groups:
        - groupId: g1
          outerAdapters:
            #      - name: logger
            - name: rdb
              key: mysql1
              properties:
                jdbc.driverClassName: com.mysql.jdbc.Driver
                jdbc.url: jdbc:mysql://xxxxxxxxx:3306/test?useUnicode=true
                jdbc.username: root
                jdbc.password: 123456
    - instance: test_test2 # canal instance Name or mq topic name
      groups:
        - groupId: g2
          outerAdapters:
            #      - name: logger
            - name: rdb
              key: mysql2
              properties:
                jdbc.driverClassName: com.mysql.jdbc.Driver
                jdbc.url: jdbc:mysql://xxxxxxxxxx:3306/test?useUnicode=true
                jdbc.username: root
                jdbc.password: 123456
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

3.2 rdb配置(按照上面2个实例)demo


实例一:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
/rdb/mytest_user1.yml
dataSourceKey: defaultDS1
destination: test_test2
groupId: g2
outerAdapterKey: mysql2
concurrent: true
dbMapping:
  database: test
  table: test2
  targetTable: test.test2
  targetPk:
    id: id
  mapAll: true

实例二:
    
/rdb/mytest_user.yml    
dataSourceKey: defaultDS
destination: test_test1
groupId: g1
outerAdapterKey: mysql1
concurrent: true
dbMapping:
  database: test
  table: test1
  targetTable: test.test1
  targetPk:
    id: id
  mapAll: true
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 

四:启动Canal及Adapter

你可能感兴趣的:(Canal Adapter同步MySQL多实例到MySQL单实例)