基础介绍
canal: 1.1.6
jdk: 12.2
canal.deployer-1.1.6.tar ### 服务端,伪装成mysql slave,进行binlog抽取和解析
canal.adapter-1.1.6.tar ### 消费端,连接服务端,将消息写入目标
canal.admin-1.1.6.tar ### 管理,暂时没用
安装
无需安装,解压后直接可用,所以主要关注配置文件
服务端
(canal.deployer-1.1.6.tar)
conf/canal.properties
所有实例共用参数,比如server端的ip、port等,暂时不动。
conf/example/instance.properties
实例参数,修改以下参数
# position info (同change master 需要的参数)
canal.instance.master.address=127.0.0.1:3306
canal.instance.master.journal.name=日志名
canal.instance.master.position=123
# username/password
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
启动即可
bin/startup.sh
消费端
conf/application.yml (填写目标库的链接信息即可)
canalAdapters:
- instance: example # 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://127.0.0.1:3306/mytest2?useUnicode=true
jdbc.username: root
jdbc.password: xxxx
conf/bootstrap.yml (配置管理地址,暂时不用,所有配置注释掉)
#canal:
#manager:
#jdbc:
#url: jdbc:mysql://127.0.0.1:3306/canal_manager?useUnicode=true&characterEncoding=UTF-8
#username: canal
#password: canal
conf/rdb/mytest_user.yml (配置表映射)
dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: mysql1
concurrent: true
dbMapping:
database: db1
table: t1
targetTable: t1
targetPk:
id: id
mapAll: true
# targetColumns:
# id:
# name:
# role_id:
# c_time:
# test1:
# etlCondition: "where c_time>={}"
# commitBatch: 3000 # 批量提交的大小
启动即可
bin/startup.sh
源端增删改查数据测试。