TiDB Binlog 組件正式開源
TiDB Binlog 組件用于收集 TiDB 的 binlog,并準實時同步給下游,如:TiDB/MySQL等。該組件在功能上類似于 MySQL 的主從復制,會收集各個 TiDB 實例產生的 binlog,并按事務提交的時間排序,全局有序的將數據同步至下游。利用 TiDB Binlog 可以實現數據準實時同步到其他數據庫,以及 TiDB 數據準實時的備份與恢復。TiDB Binlog 作為 TiDB 的核心組件之一,已經在上百家用戶的生產環境中長時間穩定運行。
為方便用戶和開發者更加深入理解和使用 TiDB Binlog 組件,以及基于 TiDB Binlog 組件做二次開發用于更多的業務場景, TiDB 團隊決定于 2019 年 5 月 6 日正式開源 TiDB Binlog 組件。
TiDB Binlog 適用的功能場景
- 準實時數據同步:同步 TiDB 數據到其他數據庫或消息隊列(如 TiDB/MySQL/MariaDB/Kafka)
- 準實時備份和恢復:增量備份 TiDB 集群數據到外部系統,利用備份的數據在系統故障或者其他場景時可將數據恢復到任意時間點
TiDB Binlog 架構
TiDB Binlog 核心特性
- 支持類似 MySQL ROW 復制模式
- 準實時并按事務提交的時間順序將數據同步至下游
- 分布式架構設計,支持水平彈性擴容和服務高可用
- 數據高可靠,系統實時將數據持久化到本地磁盤
- 支持多種輸出方式,如下:
- 文件:系統準實時將 binlog 寫入文件系統作為增量備份,利用此增量備份文件可將數據恢復到任意時間點
- 消息隊列:按照 binlog slave protocol 輸出到 Kafka
- 下游目標數據庫:TiDB/MySQL/MariaDB