[发明专利]一种基于MySQL的高可用准实时数据同步方法在审
申请号: | 201911311470.9 | 申请日: | 2019-12-18 |
公开(公告)号: | CN111026813A | 公开(公告)日: | 2020-04-17 |
发明(设计)人: | 崔云龙 | 申请(专利权)人: | 紫光云(南京)数字技术有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210000 江苏省南京市浦口区江浦街*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mysql 可用 实时 数据 同步 方法 | ||
1.一种基于MySQL的高可用准实时数据同步方法,其特征在于,包括如下步骤:
S1,在多台服务器上部署数据分发中心,并引入ETCD,实现分布式锁;
S2,所述数据分发中心伪造一个“从库”向主库发送binlog dump指令;
S3,所述主库接收到binlog dump指令后将binlog event源源不断的发送给所述数据分发中心;
S4,所述数据分发中心的主线程解析binlog event,并保存在内存队列中,所述数据分发中心的工作线程读取对应队列事件,分发事件至RabbitMQ消息接收器中一个TOPIC类型的exchange中;
S5,所述RabbitMQ消息接收器根据消息对应的routing key,将消息发送到指定的队列中。
2.根据权利要求1所述的一种基于MySQL的高可用准实时数据同步方法,其特征在于:在所述S4中,所述数据分发中心主线程通过MySQL日志解析,将binlog event中的二进制文件解析并转换为JSON格式的数据。
3.根据权利要求2所述的一种基于MySQL的高可用准实时数据同步方法,其特征在于:所述数据分发中心主线程通过MySQL日志解析中只有一个主实例连接到MySQL解析BinaryLog,其他的为备选实例。
4.根据权利要求3所述的一种基于MySQL的高可用准实时数据同步方法,其特征在于:若所述主实例节点宕机,则备选实例节点通过竞争获取到锁,连接到MySQL,保证服务继续使用,具体运行的步骤如下:
S401、尝试获取分布式锁;
S402、获取成功,则连接数据库,获取Binary log事件流;
S403、获取失败,则主线程等待5秒后,回到S401。
5.根据权利要求1所述的一种基于MySQL的高可用准实时数据同步方法,其特征在于:所述S5中,所述routing key生成规则为:database(数据库名).table(表名).action(对应动作,insert/update/delete),如果是分表,为了避免在RabbitMQ中添加多个绑定关系,routing key生成规则为:database(数据库名).{table(表名前缀)}.action(对应动作,insert/update/delete)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于紫光云(南京)数字技术有限公司,未经紫光云(南京)数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911311470.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种助消化发酵型即食风味笋及其制备方法
- 下一篇:基于贮气罐系统配套的设备