alibaba/canal 阿里巴巴 mysql 數據庫 binlog 增量訂閱&消費組件


基於日志增量訂閱&消費支持的業務:

  1. 數據庫鏡像
  2. 數據庫實時備份
  3. 多級索引 (賣家和買家各自分庫索引)
  4. search build
  5. 業務cache刷新
  6. 價格變化等重要業務消息

項目介紹

名稱:canal [kə'næl]

譯意: 水道/管道/溝渠

語言: 純java開發

定位: 基於數據庫增量日志解析,提供增量數據訂閱&消費,目前主要支持了mysql

關鍵詞: mysql binlog parser / real-time / queue&topic

 

工作原理

mysql主備復制實現


從上層來看,復制分成三步:

  1. master將改變記錄到二進制日志(binary log)中(這些記錄叫做二進制日志事件,binary log events,可以通過show binlog events進行查看);
  2. slave將master的binary log events拷貝到它的中繼日志(relay log);
  3. slave重做中繼日志中的事件,將改變反映它自己的數據。

canal的工作原理:

原理相對比較簡單:

  1. canal模擬mysql slave的交互協議,偽裝自己為mysql slave,向mysql master發送dump協議
  2. mysql master收到dump請求,開始推送binary log給slave(也就是canal)
  3. canal解析binary log對象(原始為byte流)

相關文檔

See the wiki page for : wiki文檔

wiki文檔列表

QuickStart

See the page for quick start: QuickStart.

ClientExample

See the page for quick start: ClientExample.

AdminGuide

See the page for admin deploy guide : AdminGuide

時序表結構

New Feature: TableMetaTSDB

重要版本更新說明

canal 1.1.x系列,參考release文檔:版本發布信息

  1. 整體性能測試&優化,提升了150%. #726 參考: 【Performance
  2. 原生支持prometheus監控 #765 【Prometheus QuickStart
  3. 原生支持kafka消息投遞 #695 【Canal Kafka QuickStart
  4. 原生支持aliyun rds的binlog訂閱 (解決自動主備切換/oss binlog離線解析) 參考: 【Aliyun RDS QuickStart
  5. 原生支持docker鏡像 #801 參考: 【Docker QuickStart

多語言業務

  1. canal整體交互協議設計上使用了protobuf3.0,理論上可以支持絕大部分的多語言場景,歡迎大家提交多客戶端的PR
  2. canal作為MySQL binlog的增量獲取工具,可以將數據投遞到MQ系統中,比如Kafka/RocketMQ,可以借助於MQ的多語言能力

版本相關

1. 建議版本:1.1.0

  1. 下載發布包:download

  2. maven依賴

<dependency>
    <groupId>com.alibaba.otter</groupId>
    <artifactId>canal.client</artifactId>
    <version>1.1.0</version>
</dependency>
  1. 詳細的issues列表可查看:ReleaseNotes

相關資料

。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM