MySQL Binary Log(简称binlog),是MySQL记录所有导致数据更改操作的二进制日志文件,这些操作有INSERT、UPDATE、DELETE以及DDL等。MySQL基于binlog可以实现故障恢复、主从复制、备份恢复等重要核心功能。不仅如此,MySQL还提供了开放的binlog dump协议,binlog以及开放的binlog dump协议,是实现CDC(Change Data Capture)功能的理想选择。第三方程序通过订阅消费binlog数据,可以实现各种应用场景,如:
订阅binlog数据并发送到实时计算平台,支撑风控、推荐等应用场景。
订阅binlog数据并发送到离线大数据平台,支撑数仓、审计等应用场景。
订阅binlog数据并发送到搜索引擎,支撑搜索、分析等应用场景。
订阅binlog数据并发送到函数计算平台,构建事件驱动的应用架构。
订阅binlog数据并发送到缓存平台,支持缓存构建和刷新。
PolarDB-X是兼容MySQL生态的分布式数据库,能够提供与MySQL binlog格式完全兼容的变更日志,并提供完全兼容MySQL的binlog dump协议,该binlog在PolarDB-X中被命名为全局binlog。所谓全局binlog,是相对于PolarDB-X每个DN节点上的部分binlog来命名的。例如,一个分布式事务会在多个DN节点的binlog中分别产生变更日志,这些日志是局部的、分散的,而全局binlog会对这些局部的、分散的数据进行排序、合并、整形等操作,生成单机事务形态的binlog数据。
PolarDB-X的CDC日志引擎,负责生产全局binlog和提供binlog dump服务,CDC子系统对外屏蔽了分布式数据库的内部复杂性,如:屏蔽了分布式事务的细节,所有binlog数据都为单机形态;屏蔽了内部节点的扩缩容动作,无需进行额外适配。总之,PolarDB-X的CDC提供的binlog服务,可以让您获得与单机MySQL数据库一致的使用体验。