資源描述:
《canal開源產(chǎn)品介紹》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、Canal開源產(chǎn)品介紹七鋒@taobaoAgenda1.產(chǎn)生背景2.項(xiàng)目介紹3.周邊產(chǎn)品4.roadmap產(chǎn)生背景早期,阿里巴巴B2B公司因?yàn)榇嬖诤贾莺兔绹?guó)雙機(jī)房部署,存在跨機(jī)房同步的業(yè)務(wù)需求,當(dāng)時(shí)早期的數(shù)據(jù)庫(kù)同步業(yè)務(wù),主要是基于trigger的方式獲取增量變更。從2010年開始,阿里系公司開始逐步的嘗試基于數(shù)據(jù)庫(kù)的日志解析,獲取增量變更進(jìn)行同步,由此衍生出了增量訂閱&消費(fèi)的業(yè)務(wù),從此開啟了一段新紀(jì)元.Canal介紹名稱:canal[k?'n?l]譯意:水道/管道/溝渠語(yǔ)言:純java開發(fā)定位:基于
2、數(shù)據(jù)庫(kù)增量日志準(zhǔn)實(shí)時(shí)解析,提供增量數(shù)據(jù)訂閱&消費(fèi)(目前開源版本主要支持了mysql)Mysql同步原理MysqlSlave同步原理:a.I/Othread接收binlogb.SQLthread執(zhí)行變更Mysql同步原理BinlogDump交互Mysql同步原理更多協(xié)議參考:http://dev.mysql.com/doc/internals/en/binary-log.htmlCanal工作原理實(shí)時(shí)增量數(shù)據(jù)獲取原理:模擬slave的交互協(xié)議,偽裝自己為mysqlslave(類似于I/Othread線
3、程)Canal工作原理數(shù)據(jù)消費(fèi)原理:基于網(wǎng)絡(luò)協(xié)議,提供數(shù)據(jù)訂閱&消費(fèi),類似于SQLThread實(shí)現(xiàn)業(yè)務(wù)自定義CanalServer模塊1.server代表一個(gè)canalserver運(yùn)行實(shí)例,對(duì)應(yīng)于一個(gè)jvm2.instance對(duì)應(yīng)于一個(gè)數(shù)據(jù)隊(duì)列(1個(gè)server對(duì)應(yīng)0..n個(gè)instance)CanalServer模塊server模塊:基于netty網(wǎng)絡(luò)處理+protobuf數(shù)據(jù)傳輸格式instance模塊:a.eventParser增量數(shù)據(jù)解析器,目前僅支持mysqlb.eventSink數(shù)據(jù)過(guò)濾
4、,加工,分發(fā)的工作c.eventStore數(shù)據(jù)存儲(chǔ),目前1.0.6僅支持memory,file存儲(chǔ)開發(fā)中d.metaManager增量訂閱&消費(fèi)信息管理器CanalServer配置示例Client/Server交互Client/Server交互數(shù)據(jù)對(duì)象格式CanalClient示例CanalClient示例基于Canal能做什么?1.數(shù)據(jù)庫(kù)鏡像&備份2.異構(gòu)數(shù)據(jù)庫(kù)同步3.多地機(jī)房4.二級(jí)索引5.搜索引擎增量build6.數(shù)據(jù)庫(kù)操作審計(jì)7.業(yè)務(wù)cache刷新8.價(jià)格變化等重要業(yè)務(wù)變更消息......C
5、anal目前使用情況Alibaba200+數(shù)據(jù)解析任務(wù)a.數(shù)據(jù)規(guī)模:6億+b.支持mysql5.1.40/48,mysql5.5.18Canal使用群人數(shù)已超70+類似開源產(chǎn)品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管理系統(tǒng)Auth權(quán)限管理監(jiān)控體系新數(shù)據(jù)源接入a.Hbase增量4.client代碼共建(共性業(yè)務(wù)場(chǎng)景)數(shù)據(jù)庫(kù)同步nosql同步(如hbase)相關(guān)資料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問(wèn)題反饋1.qq交流群:1615597912.郵件交流:jianghang115@gmail.com3.新浪微博:agapple00024.報(bào)告issue:issues最后Q&A