欢迎来到天天文库
浏览记录
ID:26880614
大小:1.48 MB
页数:24页
时间:2018-11-29
《canal开源产品介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Canal开源产品介绍七锋@taobaoAgenda1.产生背景2.项目介绍3.周边产品4.roadmap产生背景早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求,当时早期的数据库同步业务,主要是基于trigger的方式获取增量变更。从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元.Canal介绍名称:canal[kə'næl]译意:水道/管道/沟渠语言:纯java开发定位:基于
2、数据库增量日志准实时解析,提供增量数据订阅&消费(目前开源版本主要支持了mysql)Mysql同步原理MysqlSlave同步原理:a.I/Othread接收binlogb.SQLthread执行变更Mysql同步原理BinlogDump交互Mysql同步原理更多协议参考:http://dev.mysql.com/doc/internals/en/binary-log.htmlCanal工作原理实时增量数据获取原理:模拟slave的交互协议,伪装自己为mysqlslave(类似于I/Othread线
3、程)Canal工作原理数据消费原理:基于网络协议,提供数据订阅&消费,类似于SQLThread实现业务自定义CanalServer模块1.server代表一个canalserver运行实例,对应于一个jvm2.instance对应于一个数据队列(1个server对应0..n个instance)CanalServer模块server模块:基于netty网络处理+protobuf数据传输格式instance模块:a.eventParser增量数据解析器,目前仅支持mysqlb.eventSink数据过滤
4、,加工,分发的工作c.eventStore数据存储,目前1.0.6仅支持memory,file存储开发中d.metaManager增量订阅&消费信息管理器CanalServer配置示例Client/Server交互Client/Server交互数据对象格式CanalClient示例CanalClient示例基于Canal能做什么?1.数据库镜像&备份2.异构数据库同步3.多地机房4.二级索引5.搜索引擎增量build6.数据库操作审计7.业务cache刷新8.价格变化等重要业务变更消息......C
5、anal目前使用情况Alibaba200+数据解析任务a.数据规模:6亿+b.支持mysql5.1.40/48,mysql5.5.18Canal使用群人数已超70+类似开源产品1.linkedindatabushttps://github.com/linkedin/databus2.tungsten-replicatorhttp://code.google.com/p/tungsten-replicator/3.open-replicatorhttp://code.google.com/p/open
6、-replicator/Roadmap1.topic模式支持web管理系统Auth权限管理监控体系新数据源接入a.Hbase增量4.client代码共建(共性业务场景)数据库同步nosql同步(如hbase)相关资料1.canalwikihttps://github.com/alibaba/canal/wiki2.mysqlbinaryloghttp://dev.mysql.com/doc/internals/en/binary-log.html3.mysqlreplication-protocol
7、http://dev.mysql.com/doc/internals/en/replication-protocol.html问题反馈1.qq交流群:1615597912.邮件交流:jianghang115@gmail.com3.新浪微博:agapple00024.报告issue:issues最后Q&A
此文档下载收益归作者所有