一、前提准备
1.安装包
本次使用的安装包为:canal.deployer-1.1.5 和 canal.adapter-1.1.5。
注意:1.1.5 之后的版本的JDK环境为11,1.1.5 可以使用jdk1.8.
二、启动deployer服务
2.1 配置文件 canal.properties
# tcp bind ip
canal.ip =
# register ip to zookeeper
canal.register.ip =
# 端口修改
canal.port = 11111
canal.metrics.pull.port = 11112
高亮部分example可以设置多个,比如example1,example2,则需要创建对应的两个文件夹,并且每个文件夹下都有一个instance.properties文件。
2.2 instance.properties 配置文件修改
2.2.1 文件位置
2.2.2 配置文件修改
# 主要修改代码
#数据库地址
canal.instance.master.address=127.0.0.1:3306
# 数据库用户名
canal.instance.dbUsername=canal
# 数据库密码
canal.instance.dbPassword=canal
2.3 启动
2.3.1 控制台效果
2.3.2 出现如下日志表示启动成功
三、启动adapter 服务
3.1 修改application.yml配置文件
# srcDataSources:
# defaultDS:
# url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true
# username: root
# password: 121212
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: 121212
本次为mysql间数据同步,主要涉及以上部分代码
3.2 在conf/tablestore路径下创建.yml格式的文件并配置。(tablestore 和application.yml 的 canal.conf.canalAdapters.instance.groups.groupId.outerAdapters.name 一致)
本次默认使用rdb
3.3 通过bin路径下的脚本启动项目。
3.3.1 文件位置
3.3.2 启动效果
四、全量同步mysql数据
命令格式
curl "hostip:port/etl/type/key/task" -X POST
命令格式详解
type值为yml文件所在文件夹名称,key值为 yml 文件中 outerAdapterKey
配置项 | 描述 | 示例 |
---|---|---|
type | 下游数据库类型,必须设置为tablestore。 | rdb |
key | 使用的Adapter标识,必须与application.yml中canal.conf: canalAdapters: groups: outerAdapters下key值相同。 | mysql1 |
task | 任务配置文件的名称 | mytest_user.yml |
示列
# 命令
http://localhost:8081/etl/rdb/mysql1/mytest_user.yml