一种自适应的数据同步系统、方法及存储介质技术方案

技术编号:37222401 阅读:23 留言:0更新日期:2023-04-20 23:07
本发明专利技术涉及信息技术领域,具体涉及一种自适应的数据同步系统、方法及存储介质,所述系统包括管理节点、观察节点和工作节点,若干个工作节点至少一个运行在源数据库所在主机且至少一个运行在目标数据库所在主机,工作节点同步数据时,记录所在主机运行的技术指标,观察节点通过RPC接口读取每个工作节点的技术指标,管理节点根据技术指标生成数据传输进程的状态调整策略,管理节点通过RPC将状态调整策略发送至对应的工作节点执行,完成数据同步的工作节点上报数据同步结果至管理节点后进入休眠状态。本发明专利技术的有益技术效果包括:能在同步发生异常时动态调整同步参数,降低网络负载;并能在同步中断后,等网络指标正常后,尝试重新拉起服务。重新拉起服务。重新拉起服务。

【技术实现步骤摘要】
一种自适应的数据同步系统、方法及存储介质


[0001]本专利技术涉及信息
,具体涉及一种自适应的数据同步系统、方法及存储介质。

技术介绍

[0002]随着业务技术的发展,经常会产生需要将分隔较远的异地数据库的数据进行同步的需求,这种异地的数据库同步很容易受网络状况的波动所影响,导致网络资源与本地计算资源没有得到充分利用,降低了同步效率。目前大部分数据库同步系统的设计建立在稳定可靠的网络环境基础上,一旦网络资源降低,对本地计算资源的利用也会同步降低,从而使同步效率下降。在业务数据库异地、网络资源有限的实时数据同步中,容易受到网络波动、堵塞的影响,导致数据同步中断挂起,服务异常时频繁重试请求更会加剧网络堵塞,产生恶性循环。为此,需要研究能够适应网络状况波动及大数据量的数据同步技术。
[0003]现有技术公开了一种基于HTTP协议高速度、高稳定以及断点续传的数据同步方法,本方法主要包括中心系统数据同步模块和子节点数据同步模块。中心系统的数据录入管理模块用于对更新的业务数据进行处理,处理存储后调用中心系统的数据更新通知模块,通知模块通过消息队列链路向子节点的数据更新监听模块发送通知,数据更新监听模块再调用子节点的数据同步请求模块来向中心系统的同步数据下载模块发起请求,获取到请求的版本数据,再循环请求处理直到子节点此种业务数据的最大版本号与中心系统最大版本号一致后停止数据同步,等待下一次中心系统的更新通知或者到达定时周期再向中心系统的同步数据下载模块请求新的版本数据。此方法组成简单,成本较低,能够与现有多级平台结合。但其技术方案并不适合网络状况波动及大数据量情况下的数据同步。

技术实现思路

[0004]本专利技术所要解决的技术问题:目前缺乏适合大数据量且能够适应网络状况波动的数据同步方案的技术问题。提出了一种自适应的数据同步系统、方法及存储介质,能够在网络状况存在波动的情况下,高效率的完成大数据量的同步。
[0005]为解决上述技术问题,本专利技术采用如下技术方案:一种自适应的数据同步系统,包括管理节点、观察节点和若干个工作节点,若干个所述工作节点至少一个运行在源数据库所在主机且至少一个运行在目标数据库所在主机,所述管理节点通过RPC接口启动全部工作节点,若干个所述工作节点之间建立数据传输进程,所述数据传输进程进行数据同步,所述工作节点同步数据时,记录所在主机运行的技术指标,所述观察节点通过RPC接口读取每个工作节点的技术指标,所述管理节点根据所述技术指标生成所述数据传输进程的状态调整策略,所述管理节点通过RPC将所述状态调整策略发送至对应的工作节点执行,完成数据同步的工作节点上报数据同步结果至所述管理节点后进入休眠状态。
[0006]作为优选,所述数据传输进程包括Select线程、Transfer线程和Load线程,运行在所述源数据库所在主机的所述工作节点的所述Select线程从源数据库中获取待同步的数
据,所述Transfer线程用于传输所述待同步的数据,运行在所述目标数据库所在主机的所述工作节点的所述Load线程将所述待同步的数据写入所述目标数据库。
[0007]作为优选,进行数据同步时,将待发送数据压缩为若干个包,若干个所述包排列为待加载队列,将待加载队列的包加载至待发送队列进行发送,所述技术指标包括待发送队列拥堵程度、Select平均速度、平均推送速度、待加载队列拥堵程度和Load平均速度,待加载队列拥堵程度=待加载队列长度/对应主机允许的最大加载队列长度,Select平均速度=待加载队列长度/(待加载队列的队列列尾包生成时间

待加载队列的队列列首包生成时间),待发送队列拥堵程度=待发送队列长度/对应主机允许的最大发送队列长度,Load平均速度=待发送队列长度/(待发送队列的队列列尾包生成时间

待发送队列的队列列首包生成时间),平均推送速度=预设数量个包的总大小/总发送时长。
[0008]作为优选,所述管理节点生成状态调整策略时,执行以下步骤:若所述待发送队列拥堵程度低于预设第一下限值,则增加Select线程数量,若所述待发送队列拥堵程度超过第一上限值,则将部分Select线程设置为睡眠状态;若所述Select平均速度低于预设第二下限值,则增加Select线程数量,若所述待发送队列拥堵程度超过第二上限值,则将释放部分Select线程;若所述平均推送速度低于预设第三下限值,则增大包的压缩比,若所述平均推送速度高于预设第三上限值,则减小包的压缩比;若所述待加载队列拥堵程度低于预设第四下限值,则增加Select线程数量,若所述待加载队列拥堵程度超过第四上限值,则将部分Select线程设置为睡眠状态;若所述Load平均速度低于预设第五下限值,则增加Select线程数量,若所述Load平均速度超过第五上限值,则将部分Select线程设置为睡眠状态。
[0009]作为优选,将Select线程设置为睡眠状态时,设置睡眠时长为(待加载队列的队列列尾包生成时间

待加载队列的队列列首包生成时间)/2,或者设置睡眠时长为(待发送队列的队列列尾包生成时间

待发送队列的队列列首包生成时间)/2。
[0010]作为优选,所述数据同步系统还包括zookeeper集群,所述zookeeper集群在所述管理节点、所述观察节点和所述工作节点建立通信连接。
[0011]作为优选,所述观察节点运行有执行异常恢复方法,所述异常恢复方法具体包括以下步骤:所述观察节点发现工作节点掉线或者工作节点的RPC接口调用超时,均触发一次异常检测;若经异常检测未发现异常,则不做操作,反之,若经异常检测发现异常,则通过所述管理节点立即重启所述工作节点的数据传输进程或者尝试重启所述工作节点。
[0012]作为优选,进行异常检测的方法包括以下步骤:所述观察节点检查与每个工作节点的网络连接,若均无法连接,则判定观察节点掉线,判定所述工作节点未发现异常,预设时长后重新执行本方法,反之,则读取与所述工作节点最后的通信时间;若所述最后的通信时间距离当前时间未超过预设第一时长阈值,则判定所述工作
节点未发现异常,结束本次异常检测;若所述最后的通信时间距离当前时间超过预设第一时长阈值,则判定所述工作节点发生异常,读取所述工作节点的RPC接口信息,通过所述管理节点立即重启所述工作节点的数据传输进程;若所述最后的通信时间距离当前时间超过预设第二时长阈值,则判定所述工作节点发生异常,读取所述工作节点的RPC接口信息,通过所述管理节点尝试重启所述工作节点。
[0013]作为优选,所述工作节点运行有异常检测方法,当所述工作节点的数据传输进程出现异常时,执行所述异常检测方法,所述异常检测方法具体包括以下步骤:当所述数据传输进程抛出异常时,自动重试预设的次数,两次重试之间分别间隔预设的间隔时长,当重试达到预设次数时,将所述数据传输进程占用的数据持久化到本地文件,释放所述数据传输进程占用的资源后,将所述数据传输进程挂起,直至所述数据传输进程被重新启动,而后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自适应的数据同步系统,其特征在于,包括管理节点、观察节点和若干个工作节点,若干个所述工作节点至少一个运行在源数据库所在主机且至少一个运行在目标数据库所在主机,所述管理节点通过RPC接口启动全部工作节点,若干个所述工作节点之间建立数据传输进程,所述数据传输进程进行数据同步,所述工作节点同步数据时,记录所在主机运行的技术指标,所述观察节点通过RPC接口读取每个工作节点的技术指标,所述管理节点根据所述技术指标生成所述数据传输进程的状态调整策略,所述管理节点通过RPC将所述状态调整策略发送至对应的工作节点执行,完成数据同步的工作节点上报数据同步结果至所述管理节点后进入休眠状态。2.根据权利要求1所述的一种自适应的数据同步系统,其特征在于,所述数据传输进程包括Select线程、Transfer线程和Load线程,运行在所述源数据库所在主机的所述工作节点的所述Select线程从源数据库中获取待同步的数据,所述Transfer线程用于传输所述待同步的数据,运行在所述目标数据库所在主机的所述工作节点的所述Load线程将所述待同步的数据写入所述目标数据库。3.根据权利要求2所述的一种自适应的数据同步系统,其特征在于,进行数据同步时,将待发送数据压缩为若干个包,若干个所述包排列为待加载队列,将待加载队列的包加载至待发送队列进行发送,所述技术指标包括待发送队列拥堵程度、Select平均速度、平均推送速度、待加载队列拥堵程度和Load平均速度,待加载队列拥堵程度=待加载队列长度/对应主机允许的最大加载队列长度,Select平均速度=待加载队列长度/(待加载队列的队列列尾包生成时间

待加载队列的队列列首包生成时间),待发送队列拥堵程度=待发送队列长度/对应主机允许的最大发送队列长度,Load平均速度=待发送队列长度/(待发送队列的队列列尾包生成时间

待发送队列的队列列首包生成时间),平均推送速度=预设数量个包的总大小/总发送时长。4.根据权利要求3所述的一种自适应的数据同步系统,其特征在于,所述管理节点生成状态调整策略时,执行以下步骤:若所述待发送队列拥堵程度低于预设第一下限值,则增加Select线程数量,若所述待发送队列拥堵程度超过第一上限值,则将部分Select线程设置为睡眠状态;若所述Select平均速度低于预设第二下限值,则增加Select线程数量,若所述待发送队列拥堵程度超过第二上限值,则将释放部分Select线程;若所述平均推送速度低于预设第三下限值,则增大包的压缩比,若所述平均推送速度高于预设第三上限值,则减小包的压缩比;若所述待加载队列拥堵程度低于预设第四下限值,则增加Select线程数量,若所述待加载队列拥堵程度超过第四上限值,则将部分Select线程设置为睡眠状态;若所述Load平均速度低于预设第五下限值,则增加Select线程数量,若所述Load平均速度超过第五上限值,则将部分Select线程设置为睡眠状态。5.根据权利要求4所述的一种自适应的数据同步系统,其特征在于,将Select线程设置为睡眠状态时,设置睡眠时长为(待加载队列的队列列尾包生成时间

待加载队列的队列列首包生成时间)/2,或者设置睡眠时长为(待发送队列的队列列尾
包生成时间

待发送队列的队列列首包生成时间)/2。6.根据权利要求1至5任一项所述的一种自适应的数据同步系统,其特征在于,所述数据同步系统还包括zookeeper集群,所述zookeeper集群在所述管理节点、所述观察节点和所述工作节点建立通信连接。7.根据权利要求1至5任一项所述的一种自适应的数据同步系统,其特征在于,所述观察节点运行有执行异常恢复方法,所述异常恢复方法具体包括以下步骤:所述观察节点发现工作节点掉线或者工作节点的RPC接口调用超时,均触发一次异常检测;若经异常检测未发现异常,则不做操作,反之,若经异常检测发现异常,则通过所述管理节点立即重启所述工作节点的数据传输进程或者尝试重启所述工作节点。8.根据权利要求7所述的一种自适应的数据同步系统,其特征在于,进行异常检测的方法包括以下步骤:所述观察节点检查与每个工作节点的网络连接,若均无法连接,则判定观察节点掉线,判定所述工作节点未发现异常,预设时长后重新执行本方法,反之,则读取与所述工作节点最后的通信时间;若所述最后的通信时间距离当前时间未超过预设第一时长阈值,则判定所述工作节点未发现异常,结束本次异常检测;若所述最后的通信时间距离当前时间超过预设第一时长阈值,则判定所述工作节点发生异常,读取所述工作节点的RPC接口信息,通过所述管理节点立即重启所述工作节点的数据传输进程;若所述最后的通信时间距离当前时间超过预设第二时长阈值,则判定所述工作节点发生异常,读取所述工作节点的RPC接口信息,通过所述管理节点尝试重启所述工作节点。9.根据权利要求1至5任一项所述的一种自适应的数据同步系统,其特征在于,所述工作节点运行有异常检测方法,当所述工作节点的数据传输进程出现异常时,执行所述异常检测方法,...

【专利技术属性】
技术研发人员:陆文成
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1