canal安装
介绍
**canal [kə’næl]**,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。支持数据同步到elasticsearch、redis、kafka等服务。
当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x
搭建参考地址:https://github.com/alibaba/canal/wiki/AdminGuide
canal 工作原理
- canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
- MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
- canal 解析 binary log 对象(原始为 byte 流)
canal安装
主机环境:
- canal+mysql:192.168.40.100
系统环境:
- jdk1.8.0_221
- MySQL5.5.64
- canal 服务端:canal.deployer-1.1.4.tar.gz
- canal 客户端测试:canal.example-1.1.4.tar.gz
- canal web管理界面:canal.admin-1.1.4.tar.gz
- canal 适配器:canal.adapter-1.1.4.tar.gz
安装步骤:
- 安装mysql,并开启bin-log
- 安装jdk
- 安装canal.deployer,修改配置
- 安装canal.example测试服务是否成功
mysql安装
canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,并且配置binlog模式为row,重启mysql。
1 |
|
1 |
|
登录mysql查看bin-log是否开启
1 |
|
配置canal服务使用的账号权限
1 |
|
jdk安装
canal.deployer安装
1 |
|
配置文件说明:
- conf/canal.properties:canal全局配置文件
- conf/example/instance.properties:一个数据源配置文件
- logs/canal/canal.log:canal.deployer服务日志
- logs/example/example.log:数据源日志
修改配置
1 |
|
1 |
|
注:
- 一个example目录为一个数据源,如果需要配置多个数据源,可以复制example为其它名字,再修改
- example目录为canal默认数据源,不能改名或删除,否正会报错
- canal每5秒,自动加载conf下的数据源目录,配置数据源不需要重启服务
1 |
|
canal.example安装
1 |
|
注: canal.example服务只能收集example数据源操作数据,如果是新增的数据源,需要java编写客户端获取数据。
测试服务
- 监控example日志
- 操作mysql增加、删除、更新
- example日志显示相应的bin-log日志
- 至此,最简单canal服务搭建成功
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!