APP下载

一种基于MySQL的数据同步中间件研究

2021-03-24刘丽胡晓勤

现代计算机 2021年2期

刘丽,胡晓勤

(四川大学网络空间安全学院,成都610065)

MySQL是最流行的关系型数据库管理系统之一,在国内互联网中应用十分广泛,原生的MySQL主从复制缺乏的灵活性,无法满足源端、目标端库表结构不一致的同步场景,也不能同步到异构数据存储中。基于MySQL Replication协议,设计并实现一种基于MySQL的数据同步中间件,支持增量数据的自定义规则处理,提供数据同步定制能力,目标数据存储支持MySQL、Kafka,以及其他异构数据存储。

MySQL;数据同步;异构;中间件

0 引言

在互联网高速发展的今天,针对MySQL的数据同步需求越来越繁杂,原生的MySQL主从复制仅支持MySQL实例之间的全量复制,且主从数据库之间库、表结构一致,这在一些数据迁移场景需求下无法满足。如将源MySQL实例的A库迁移到目标MySQL实例的B库、在同步过程中根据某些数据字段的变化情况进行复制等,针对这些业务定制很强的场景,MySQL原生主从并不能解决。此外,在OLAP[1]场景下,往往需要将关注的MySQL增量数据采集到Kafka、ElasticSearch等异构数据存储中,因此,也需要解决MySQL同步至异构数据存储的问题。

针对上述问题,本文提出了一种基于MySQL的数据同步中间件,支持MySQL实例之间的单向数据同步,并提供了自定义增量数据同步规则的定制入口,能满足所有的映射同步、过滤同步等复杂的同步场景。此外,还支持将MySQL增量数据同步至Kafka等异构数据存储中,应用也可自行实现自己的数据存储同步适配器,具备极高的可拓展性。

1 数据同步中间件架构

本文提出的数据同步中间件系统架构如图1所示,整体分为逻辑层、协调层。……

登录APP查看全文