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