CANAL
- 类型:商务办公
- 大小:24.63MB
- 语言:简体中文
- 厂商:昆明趣发信息技术有限公司
- 更新:2026-04-13 23:23:52
- 备案号:滇ICP备2025055517号-8A

CANAL 是一个开源的 MySQL 数据库增量日志解析与数据同步中间件,由阿里巴巴集团研发并开源。它通过模拟 MySQL Slave 的方式,实时订阅并解析主库的 binlog 日志,将数据变更(INSERT/UPDATE/DELETE)以结构化事件的形式投递至下游系统(如 Kafka、RocketMQ、Elasticsearch 或自定义客户端),广泛应用于异构数据同步、缓存更新、业务解耦和实时数仓建设等场景。
软件优势
1. 高兼容性:支持 MySQL 5.6/5.7/8.0 及多种主流分支(如 AliSQL、Percona),兼容 GTID 和传统 binlog 模式。
2. 低侵入性:无需修改业务代码或数据库表结构,仅需开启 binlog 并授权 Canal 账号即可接入。
3. 高可靠性:提供 ACK 机制、本地/远程位置管理、断点续传能力,保障数据不丢失、不重复。
4. 灵活扩展:支持集群部署(基于 ZooKeeper/Nacos)与水平扩容,单节点可支撑数千表级同步任务。
5. 生态丰富:内置适配器支持 RocketMQ、Kafka、RabbitMQ、HTTP 等多种下游,同时提供 Java 客户端 SDK 便于定制开发。
使用教程
1. 环境准备:确保 MySQL 已开启 binlog(设置 log-bin、binlog-format=ROW、server-id 唯一),并创建具备 REPLICATION SLAVE 权限的账号。
2. 下载部署:从 GitHub 官方仓库获取最新 release 包,解压后配置 conf/example/instance.properties 中的数据库连接与同步参数。
3. 启动服务:执行 sh bin/startup.sh(Linux/Mac)或 bin/startup.bat(Windows),通过日志确认 canal-server 启动成功。
4. 接入客户端:引入 canal-client 依赖,编写 Java 示例程序,连接 canal-server 并订阅指定 destination,解析 Message 获取 RowChange 事件。
5. 验证同步:在 MySQL 执行 DML 操作,观察客户端是否实时接收到对应数据变更事件,确认链路通达。
更新日志
• v1.1.7(2023年发布):增强对 MySQL 8.0.33+ 的兼容性;优化 Kafka 消息序列化性能;修复部分高并发场景下的位点异常回滚问题。
• v1.1.6(2022年发布):新增 Nacos 作为动态配置中心支持;提升多 instance 并发启动稳定性;完善 Docker 镜像构建脚本与文档。
• v1.1.5(2021年发布):支持 GTID 自动定位;增强 HA 切换时的数据一致性保障;修复 Canal Admin 控制台若干 UI 与权限问题。




地铁跑酷
地铁跑酷
地铁跑酷
地铁跑酷
地铁跑酷
地铁跑酷
地铁跑酷
地铁跑酷
地铁跑酷
OCAT
知己交友