源码地址与简介
源码地址:https://github.com/alibaba/canal
Canal是阿里巴巴开源的一款基于MySQL数据库增量日志解析和消费的组件,可以将数据库的变更操作事件解析成指定格式的消息,并通过MQ或类似的方式投递给消费者。Canal可以用于数据备份与恢复、数据库镜像、实时数据仓库等。
主要分析 canal-adapter源码 与 canal-deployer源码
工作原理
1.canal模拟mysql主从复制(mysql slave),将自己伪装成mysql slave, 向 mysql主机节点发送dump协议
2.mysql master收到dump向 canal发送 binlog日志(mq)
3.canal接受binlog日志(byte[]流)解析
canal-deployer
- canal两种使用方式:独立部署(一般deployer和sever) 内嵌应用
- 包结构如下图:
daployer源码分析入口 ---- CanalLauncher
1.加载配置文件canal.properties.