完结篇 | TiDB Binlog 源码阅读系列文章 (九)同步数据到下游
上篇文章 介绍了用于将 binlog 同步到 MySQL / TiDB 的 Loader package,本文往回退一步,介绍 Drainer 同步到不同下游的机制。 TiDB Binlog(github.com/pingcap/tidb-binlog) 用于收集 TiDB 的 binlog,并准实时同步给下游。 同步数据这一步重要操作由 Drainer 模块支持,它可以将 binlog 同步到 TiDB / MySQL / Kafka / File (增量备份)等下游组件。 对于 TiDB 和 MySQL 两种类型的下游组件,Drainer 会从 binlog 中还原出对应的 SQL 操作在下游直接执行; 对于 Kafka 和 File(增量备份)两种类型的下游组件,输出约定编码格式的 binlog。用户可以定制后续各种处理流程,如更新搜索引擎索引、清除缓存、增量备份等。TiDB Binlog 自带工具 Reparo 实现了将增量备份数据(下游类型为 File(增量备份))同步到 TiDB / MySQL 的功能。 本文将按以下几个小节介绍 Drainer 如何将收到的 binlog 同步到下游: Drainer Sync 模块:Drainer 通过 Sync 模块调度整个同步过程,所有的下游相关的同步逻辑统一封装成了 Syncer 接口。 恢复工具 Reparo (读音:reh