基于多中心的数据同步方法、装置、设备及介质与流程

文档序号:33562250发布日期:2023-03-22 15:52阅读:42来源:国知局
1.本发明属于数据资源管理
技术领域
:,尤其涉及基于多中心的数据同步方法、装置、设备及介质。
背景技术
::2.大数据时代下,在各种场景都需要实时数据的支撑,数据同步则显得尤为重要。随着技术的发展,数据场景也逐渐从点到点发展为以中心为点的发散式场景。3.虽然仍然可以用传统的点对点的数据同步方式来适应多中心的场景,当中心数量增多,同步数据以指数型爆发增长时,同步系统压力过大,严重影响同步效率,很难保证数据的实时性和一致性,当达到一定程度时也会导致系统崩溃。技术实现要素:4.本发明的目的在于,为克服现有技术缺陷,提供了基于多中心的数据同步方法、装置、设备及介质,解决因中心断开连接导致同步系统堵塞问题。5.本发明目的通过下述技术方案来实现:6.一种基于多中心的数据同步方法,所述方法包括:7.开启增量同步任务;8.获取所述任务需要同步目的的各中心节点,按不同中心节点创建同步任务,按任务种类执行同步任务并记录同步失败任务的失败次数;9.采用第一失败重调机制和第二失败重调机制对失败任务进行重调;10.所述第一失败重调机制包括:11.去掉同步失败次数小于预设阈值的任务中具有相同类型、相同中心的同步任务,并按照不同中心、不同任务类型进行分组;12.每间隔第一预设时间对所述同步失败次数小于预设失败次数阈值的任务按照任务id顺序进行失败重调;13.更新同步状态并累计同步失败任务的失败次数;14.所述第二失败重调机制包括:15.对失败次数超过预设失败次数阈值的任务按不同中心、不同任务类型进行分组;16.每间隔第二预设时间按照同步任务id顺序对分组后的任务进行失败重调。17.进一步的,所述开启增量同步任务包括:18.定时开启任务并扫描同步时间戳,对时间戳发生变化的任务进行增量同步。19.进一步的,所述按任务种类执行同步任务并记录同步失败任务的失败次数具体包括:20.同类型的任务先同步一件,其他暂不处理,设置同步状态为等待,对同步成功的数据,更新同步状态为成功,同步失败的任务,更新状态为失败,并记录同步失败次数+1。21.进一步的,所述同步失败包括同步未执行和同步未执行成功。22.进一步的,所述第二预设时间长度为所述第一预设时间长度乘以预设失败次数阈值的整数倍。23.进一步的,所述第二预设时间长度为所述第一预设时间长度乘以预设失败次数阈值。24.进一步的,所述第二失败重调机制还包括更新重调后的任务状态,同步成功的任务更新状态为成功,同步失败的任务更新状态为失败,并记录同步失败次数+1。25.另一方面,本发明还提供了一种基于多中心的数据同步装置,所述装置用于实现前述的数据同步方法,所述装置包括:26.同步开启模块,用于开启增量同步任务;27.同步执行模块,用于获取所述任务需要同步目的的各中心节点,按不同中心节点创建同步任务,按任务种类同步执行同步任务并记录同步失败任务的失败次数;28.第一失败重调模块,用于去掉同步失败次数小于预设阈值的任务中具有相同类型、相同中心的同步任务,并按照不同中心、不同任务类型进行分组;29.每间隔第一预设时间对所述同步失败次数小于预设失败次数阈值的任务按照任务id顺序进行失败重调;30.更新同步状态并累计同步失败任务的失败次数31.第二失败重调模块,用于对失败次数超过预设失败次数阈值的任务按不同中心、不同任务类型进行分组;32.每间隔第二预设时间按照同步任务id顺序对分组后的任务进行失败重调。33.另一方面,本发明还提供了一种计算机设备,计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述的任意一种基于多中心的数据同步方法。34.另一方面,本发明还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述的任意一种基于多中心的数据同步方法。35.本发明的有益效果在于:36.本发明在保证多中心数据同步的实时性和一致性的前提,通过逻辑设计,减少同一时刻不必要的数据同步量,缓解多中心同步系统的压力,提高同步效率。附图说明37.图1是本发明实施例提供的基于多中心的数据同步方法流程示意图;38.图2是本发明实施例第一失败重调机制流程示意图;39.图3是本发明实施例第二失败重调机制流程示意图;40.图4是本发明实施例提供的基于多中心的数据同步装置结构框图。具体实施方式41.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。42.基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。43.虽然仍然可以用传统的点对点的数据同步方式来适应多中心的场景,当中心数量增多,同步数据以指数型爆发增长时,同步系统压力过大,严重影响同步效率,很难保证数据的实时性和一致性,当达到一定程度时也会导致系统崩溃。44.为了解决上述技术问题,提出了本发明基于多中心的数据同步方法、装置、设备及介质的下述各个实施例。45.实施例146.参照图1,如图1所示是本实施例提供的基于多中心的数据同步方法流程示意图,该方法具体包括以下步骤:47.步骤一:开启增量同步任务。48.具体地,本实施例中定时任务开启,定时扫同步时间戳,每2分钟一次,开启增量同步任务。在开启同步后,查询增量信息表,遍历执行每类需要同步的任务。49.步骤二:获取任务需要同步目的的各中心节点,按不同中心节点创建同步任务,按任务种类执行同步任务并记录同步失败任务的失败次数。50.具体地,本实施例中对时间戳发生变化的任务进行同步,将需要同步的任务分批组装,进行批量同步,获取每个任务需要同步到目的的各中心节点,按不同中心节点创建同步任务,同类型的任务暂不处理,设置同步状态为wait,对其他数据进行同步,对同步成功的数据,更新同步状态为success,同步失败的任务,更新状态为fail,且失败次数+1,等待失败重调。51.其中,将需要同步的任务分批组装,进行批量同步的方式如下:52.在数据库中查找table_name中的各个表,每类同步任务对应一张总表,为每张总表拼接对应数据库的sql语句,通过sql语句获取到需要同步表的基本信息,此处定义为列表rows,判断rows是否有下一个值,将rows中数据按“字段:值”按行的格式存入到新的列表rows2直至rows2达到一定批量次数后请求同步数据,例如1000次,该批量次数可根据实际需要进行调整;若rows没有下一个值则表示判断rows2是否有值,若仍然没有则流程结束,若rows2有值则表示剩余不到1000批次待处理,则对剩余数据也请求同步数据。53.将需要同步的数据封装成同步data和同步节点,若同步节点不为空则根据不同节点创建同步任务,若同步节点为空则获取所有非本中心节点后根据不同节点创建同步任务。54.执行同步任务具体包括以下步骤a-c:55.a.更新开始时间,修改同步状态为running。56.b.将同步初始信息保存到数据库。57.c.请求参数传入token,同步数据到相应数据库,结果封装为result返回。58.本实施例中对result进行判断即可获知是否同步成功。59.步骤三:采用第一失败重调机制和第二失败重调机制对失败任务进行重调。60.本实施例为保证多中心同步任务的完整性,采用失败重调机制,为防止因某中心断开连接,失败同步任务数量过大,导致同步性能大大降低,采用第一失败重调机制及第二失败重调机制,61.具体地,参照图2,如图2所示是本实施例第一失败重调机制流程示意图。该机制具体流程如下:62.定时任务开启,对同步未执行或未执行成功的失败次数小于5的同步任务进行失败重调,每5分钟执行一次,为防止出现本应先同步的数据覆盖后面同步数据的情况,需要对这些任务进行去重,即去掉与失败次数大于5的同步任务中具有相同类型、相同中心的同步任务,去重后按照不同中心、不同任务类型进行分组,严格按照同步任务id顺序进行同步,保证先同步失败的任务先进行失败重调,对这批失败重调成功的任务,更新同步状态为success,重调失败的任务,保持更新状态为fail,且失败次数+1,等待失败重调。63.参照图3,如图3所示是本实施例第二失败重调机制流程示意图。该机制具体流程如下:64.定时任务开启,对未执行成功的,且失败次数大于等于5的同步任务进行失败重调,每25分钟执行一次,按不同中心、不同任务类型进行分组,严格按照同步任务id顺序进行同步,对这批失败重调成功的任务,更新同步状态为success,重调失败的任务,保持更新状态为fail,且失败次数+1,等待失败重调。65.需要说明的是,本实施例中第一失败重调机制和第二失败重调机制的执行间隔可根据实际需要进行调整,只需满足第一失败重调机制的执行间隔是第一失败重调机制执行间隔乘以失败次数阈值的整数倍即可。66.本实施例提供的基于多中心的数据同步方法在保证多中心数据同步的实时性和一致性的前提,通过逻辑设计,减少同一时刻不必要的数据同步量,缓解多中心同步系统的压力,提高同步效率。67.实施例268.参照图4,如图4所示是本实施例提供的基于多中心的数据同步装置结构框图,该装置用于实现前述实施例记载的基于多中心的数据同步方法,该装置具体包括以下结构:69.同步开启模块,用于开启增量同步任务;70.同步执行模块,用于获取任务需要同步目的的各中心节点,按不同中心节点创建同步任务,按任务种类同步执行同步任务并记录同步失败任务的失败次数;71.第一失败重调模块,用于去掉同步失败次数小于预设阈值的任务中具有相同类型、相同中心的同步任务,并按照不同中心、不同任务类型进行分组;72.每间隔第一预设时间对同步失败次数小于预设失败次数阈值的任务按照任务id顺序进行失败重调;73.更新同步状态并累计同步失败任务的失败次数74.第二失败重调模块,用于对失败次数超过预设失败次数阈值的任务按不同中心、不同任务类型进行分组;75.每间隔第二预设时间按照同步任务id顺序对分组后的任务进行失败重调。76.本实施例提供的基于多中心的数据同步装置在保证多中心数据同步的实时性和一致性的前提,通过逻辑设计,减少同一时刻不必要的数据同步量,缓解多中心同步系统的压力,提高同步效率。77.实施例378.本优选实施例提供了一种计算机设备,该计算机设备可以实现本技术实施例所提供的基于多中心的数据同步方法任一实施例中的步骤,因此,可以实现本技术实施例所提供的基于多中心的数据同步方法的有益效果,详见前面的实施例,在此不再赘述。79.实施例480.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的基于多中心的数据同步方法中任一实施例的步骤。81.其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。82.由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一基于多中心的数据同步方法实施例中的步骤,因此,可以实现本发明实施例所提供的任一基于多中心的数据同步方法所能实现的有益效果,详见前面的实施例,在此不再赘述。83.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1