
alibaba/canal 阿里巴巴 mysql 数据库 binlog 增量订阅&消费组件
发布日期:2021-05-09 05:37:16
浏览次数:20
分类:精选文章
本文共 1379 字,大约阅读时间需要 4 分钟。
基于日志增量订阅&消费支持的业务:
- 数据库镜像
- 数据库实时备份
- 多级索引 (卖家和买家各自分库索引)
- search build
- 业务cache刷新
- 价格变化等重要业务消息
项目介绍
名称:canal [kə'næl]
译意: 水道/管道/沟渠
语言: 纯java开发
定位: 基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql
关键词: mysql binlog parser / real-time / queue&topic
工作原理
mysql主备复制实现
从上层来看,复制分成三步:- master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
- slave将master的binary log events拷贝到它的中继日志(relay log);
- slave重做中继日志中的事件,将改变反映它自己的数据。
canal的工作原理:
原理相对比较简单:
- canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
- mysql master收到dump请求,开始推送binary log给slave(也就是canal)
- canal解析binary log对象(原始为byte流)
相关文档
See the wiki page for :
wiki文档列表
QuickStart
See the page for quick start: .
ClientExample
See the page for quick start: .
AdminGuide
See the page for admin deploy guide :
时序表结构
New Feature:
重要版本更新说明
canal 1.1.x系列,参考release文档:
- 整体性能测试&优化,提升了150%. #726 参考: 【】
- 原生支持prometheus监控 #765 【】
- 原生支持kafka消息投递 #695 【】
- 原生支持aliyun rds的binlog订阅 (解决自动主备切换/oss binlog离线解析) 参考: 【】
- 原生支持docker镜像 #801 参考: 【】
多语言业务
- canal整体交互协议设计上使用了protobuf3.0,理论上可以支持绝大部分的多语言场景,欢迎大家提交多客户端的PR
- canal java客户端:
- canal c#客户端开源项目地址:
- canal go客户端开源项目地址:
- canal作为MySQL binlog的增量获取工具,可以将数据投递到MQ系统中,比如Kafka/RocketMQ,可以借助于MQ的多语言能力
- 参考文档:
版本相关
1. 建议版本:1.1.0
下载发布包:
maven依赖
com.alibaba.otter canal.client 1.1.0
- 详细的issues列表可查看:
相关资料
- ADC阿里技术嘉年华分享ppt (放在google docs上,可能需要翻墙):
。。。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月08日 00时14分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LintCode_114 不同的路径,115 不同的路径 II
2023-01-31
linux ACL权限,设定,删除
2023-01-31
linux awk命令详解2
2023-01-31
linux bash shell 特殊字符大全
2023-01-31
linux bash: sqlplus: command not found 错误处理
2023-01-31
linux bg和fg命令
2023-01-31
Linux cat 命令的进化版:Bat 0.25 正式发布,行压缩功能亮点十足!
2023-01-31
linux centos 安装 docker-compose 1.27.4
2023-01-31
Linux centos7 防火墙设置
2023-01-31
linux core文件设置
2023-01-31
Linux CPU管理及监控与性能评估
2023-01-31
Linux CPU负载状态分析实战
2023-01-31
LINUX du/df/free查看内存/磁盘剩余空间
2023-02-01
Linux losetup命令
2023-02-01
Linux LVM学习总结——创建卷组VG
2023-02-01
linux mac地址老化时间,bridge网桥表老化时间设置
2023-02-01
linux mongo是否启动命令行,Linux下Mongodb安装和启动配置
2023-02-01
linux mysql insert_Linux编程 - 使用C在MySQL中插入数据
2023-02-01
Linux Netfilter框架之conntrack连接跟踪机制
2023-02-01
Linux NFS存储服务介绍与参数说明
2023-02-01