[发明专利]一种基于MySQL的高可用准实时数据同步方法在审
申请号: | 201911311470.9 | 申请日: | 2019-12-18 |
公开(公告)号: | CN111026813A | 公开(公告)日: | 2020-04-17 |
发明(设计)人: | 崔云龙 | 申请(专利权)人: | 紫光云(南京)数字技术有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210000 江苏省南京市浦口区江浦街*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mysql 可用 实时 数据 同步 方法 | ||
本发明的一种基于MySQL的高可用准实时数据同步方法,涉及数据同步方法应用技术领域,包括步骤S1,在多台服务器上部署数据分发中心,并引入ETCD,实现分布式锁;S2,数据分发中心伪造一个“从库”向主库发送binlog dump指令;S3,主库接收到binlog dump指令后将binlog event源源不断的发送给数据分发中心;S4,数据分发中心的主线程解析binlog event,并保存在内存队列中,数据分发中心的工作线程读取对应队列事件,分发事件至RabbitMQ消息接收器中一个TOPIC类型的exchange中;S5,RabbitMQ消息接收器根据消息对应的routing key,将消息发送到指定的队列中。实现了一个较为完善的数据同步方案,具备高可用的性能,能够对MySQL字段进行完整解析,支持添加多个导出数据源,实现横向扩展发送到不同消息队列上进行业务处理。
技术领域
本发明涉及数据同步方法应用技术领域,具体涉及一种基于MySQL的高可用准实时数据同步方法。
背景技术
当先,随着公司业务的不断发展,经常需要做一些数据同步或者数据变化监控的工作,比如:费用中心的订单数据需要同步到其他业务系统;业务数据需要同步到数据分析部门进行分析;数据库的数据需要同步到全文搜索引擎等,经常使用到的方法有保持双写,即更新数据同时,更新缓存,更新搜索,提交数据到其他业务线;通过定时任务扫表进行同步;引入消息队列,通过生产者和消费者来进行处理。
使用以上几种数据同步的方法虽然可以实现数据库的数据同步,但是方案中都存在有或多或少的弊端,比如无法保证双写成功,影响核心业务代码可读性,难以保证实时性。因此我们有必要针对现有技术的不足而提供一种基于MySQL的高可用准实时数据同步方法。
发明内容
为了克服现有技术中的不足,本发明的一种基于MySQL的高可用准实时数据同步方法,其具备高可用的性能,能够对MySQL字段进行完整解析,支持添加多个导出数据源。
为了实现上述目的,本发明的一种基于MySQL的高可用准实时数据同步方法,包括如下步骤:
S1,在多台服务器上部署数据分发中心,并引入ETCD,实现分布式锁;
S2,数据分发中心伪造一个“从库”向主库发送binlog dump指令;
S3,主库接收到binlog dump指令后将binlog event源源不断的发送给数据分发中心;
S4,数据分发中心的主线程解析binlog event,并保存在内存队列中,数据分发中心的工作线程读取对应队列事件,分发事件至RabbitMQ消息接收器中一个TOPIC类型的exchange中;
S5,RabbitMQ消息接收器根据消息对应的routing key,将消息发送到指定的队列中。
优选的,在S4中,数据分发中心主线程通过MySQL日志解析,将binlog event中的二进制文件解析并转换为JSON格式的数据。
优选的,数据分发中心主线程通过MySQL日志解析中只有一个主实例连接到MySQL解析Binary Log,其他的为备选实例。
优选的,若主实例节点宕机,则备选实例节点通过竞争获取到锁,连接到MySQL,保证服务继续使用,具体运行的步骤如下:
S401、尝试获取分布式锁;
S402、获取成功,则连接数据库,获取Binary log事件流;
S403、获取失败,则主线程等待5秒后,回到S401。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于紫光云(南京)数字技术有限公司,未经紫光云(南京)数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911311470.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种助消化发酵型即食风味笋及其制备方法
- 下一篇:基于贮气罐系统配套的设备