本系统基于 MySQL 的 binlog 日志实现数据的实时分发同步,把源数据库(MySQL5.6 或以上,开启 row 模式 Binlog 日志)中的数据实时分发同步给一个或多个目标数据库。整个系统包括Binlog日志读取解析模块、数据筛选分发模块两大功能模块等组成。
其中Binlog日志读取解析模块使用 Python3 开发,基于 pymysqlreplication 组件实现源数据库 Binlog 日志的读取解析,从源数据库读取 Binlog 日志,解析转换成 SQL,并按照配置文件进行筛选后发送给相应的目标服务器。
接收入库模块采用 Go 语言开发。通过 WebAPI 接口接收数据筛选分发模块发过来的数据(SQL),处理后写入目标数据库。