MySQL 的 Binlog 日志處理工具(Canal/Maxwell/Databus/DTS)對比

Canal
定位:基于數據庫增量日志解析,提供增量數據訂閱&消費,目前主要支持了mysql。
原理:
canal模擬mysql slave的交互協議,偽裝自己為mysql slave,向mysql master發(fā)送dump協議
mysql master收到dump請求,開始推送binary log給slave(也就是canal)
canal解析binary log對象(原始為byte流)


?Connection獲取上一次解析成功的位置(如果第一次啟動,則獲取初始制定的位置或者是當前數據庫的binlog位點)
Connection建立連接,發(fā)生BINLOG_DUMP命令
Mysql開始推送Binary Log
接收到的Binary Log通過Binlog parser進行協議解析,補充一些特定信息
傳遞給EventSink模塊進行數據存儲,是一個阻塞操作,直到存儲成功
存儲成功后,定時記錄Binary Log位置

數據過濾:支持通配符的過濾模式,表名,字段內容等
數據路由/分發(fā):解決1:n (1個parser對應多個store的模式)
數據歸并:解決n:1 (多個parser對應1個store)
數據加工:在進入store之前進行額外的處理,比如join
Maxwell

源與消費者之間的隔離
保證按順序和至少一次交付具有高可用性
從更改流中的任意時間點開始消耗,包括整個數據的完全引導功能。
分區(qū)消費
源一致性保存

來源:肉眼品世界
版權申明:內容來源網絡,版權歸原創(chuàng)者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除并表示歉意。謝謝!

評論
圖片
表情
