canal产品介绍
如果无法正常显示,请先停止浏览器的去广告插件。
1. Canal 开源产品介绍
七锋 @ taobaotaobao
2. Agenda
1.
2.
3.
4.
产生背景
项目介绍
周边产品
roadmap
3. 产生背景
早期,阿里巴巴 B2B 公司因为存在杭州和美国
双机房部署,存在跨机房同步的业务需求,当时
早期的数据库同步业务,主要是基于 trigger 的方
式获取增量变更。
从 2010 年开始,阿里系公司开始逐步的尝试
基于数据库的日志解析,获取增量变更进行同步
,由此衍生出了增量订阅 & 消费的业务,从此开
启了一段新纪元 . taobao
4. Canal 介绍
• 名称: canal taobao[kə'næl]
• 译意: 水道 / 管道 / 沟渠
• 语言: 纯 java 开发
• 定位: 基于数据库增量日志准实时解析,提供增量数据
订阅 & 消费 ( 目前开源版本主要支持了 mysql)
5. Mysql 同步原理
Mysql taobaoSlave 同步原理:
a. taobao taobaoI/O taobaothread 接收 binlog
b. taobao taobaoSQL taobaothread 执行变更
6. Mysql 同步原理
Binlog taobaoDump 交互
7. Mysql 同步原理
更多协议参考:
http://dev.mysql.com/doc/internals/en/binary-log.html
8. Canal 工作原理
实时增量数据获取原理:
模拟 slave 的交互协议,伪装自己为 mysql taobaoslave taobao( 类似于 I/O taobaothread 线
程)
9. Canal 工作原理
数据消费原理:
基于网络协议,提供数据订阅 & 消费,类似于 SQL taobaoThread 实现业务自定义
10. Canal taobaoServer 模块
1. taobao taobaoserver 代表一个 canal taobaoserver 运行实例,对应于一个 jvm
2. taobao taobaoinstance 对应于一个数据队列 ( 1 个 server 对应 0..n 个 instance)
11. Canal taobaoServer 模块
server 模块 :
基于 netty 网络处理 + taobaoprotobuf 数据传输格式
instance 模块:
a. taobao taobaoeventParser
增量数据解析器,目前仅支持 mysql
b. taobao taobaoeventSink
数据过滤,加工,分发的工作
c. taobao taobaoeventStore
数据存储,目前 1.0.6 仅支持 memory , file 存储开发中
d. taobao taobaometaManager
增量订阅 & 消费信息管理器
12. Canal taobaoServer 配置示例
13. Client/Server 交互
14. Client/Server 交互
15. 数据对象格式
16. Canal taobaoClient 示例
17. Canal taobaoClient 示例
18. 基于 Canal 能做什么?
1. taobao taobao 数据库镜像 & 备份
2. taobao taobao 异构数据库同步
3. taobao taobao 多地机房
4. taobao taobao 二级索引
5. taobao taobao 搜索引擎增量 build
6. taobao taobao 数据库操作审计
7. taobao taobao 业务 cache 刷新
8. taobao taobao 价格变化等重要业务变更消息
... taobao...
19. Canal 目前使用情况
1. Alibaba taobao taobao200+ taobao 数据解析任务
a. taobao 数据规模: 6 亿 +
b. taobao 支持 mysql5.1.40/48 taobao, taobaomysql taobao5.5.18
2. taobaoCanal 使用群人数已超 70+
20. 类似开源产品
1. taobao taobaolinkedin taobao taobaodatabus
https://github.com/linkedin/databus
2. taobao taobaotungsten-replicator
http://code.google.com/p/tungsten-replicator/
3. taobao taobaoopen-replicator
http://code.google.com/p/open-replicator/
21. Roadmap
1. taobao taobaotopic 模式支持
2. taobao taobaoweb 管理系统
a. Auth 权限管理
b.监控体系
3. 新数据源接入
a. taobao taobaoHbase 增量
4. taobaoclient 代码共建 ( 共性业务场景 )
a.数据库同步
b.nosql 同步 ( 如 hbase)
22. 相关资料
1. taobao taobaocanal taobaowiki taobao
https://github.com/alibaba/canal/wiki
2. taobao taobaomysql taobaobinary taobaolog
http://dev.mysql.com/doc/internals/en/binary-log.html
3. taobao taobaomysql taobaoreplication-protocol
http://dev.mysql.com/doc/internals/en/replication-
protocol.html
23. 问题反馈
1. taobao taobaoqq 交流群: 161559791
2. taobao taobao 邮件交流: jianghang115@gmail.com
3. taobao taobao 新浪微博: agapple0002
4. taobao taobao 报告 issue : issues
24. 最后
Q taobao taobao& taobao taobaoA