System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种数据同步处理方法、装置、服务器及存储介质。
技术介绍
1、目前,随着信息技术的发展,企业中的各个部门或子系统的数据源越来越多样化,不同系统之间的数据存在关联性。然而,由于系统异构性,导致数据无法有效的共享利用。数据同步是实现企业系统集成、数据共享的重要手段,为实现企业数据的有效集成,需要建立系统间的数据同步机制。
2、现有技术中,为实现不同系统间数据的同步,可以通过全球广域网api(application programming interface,应用程序编程接口)提供分页数据接口,循环调用分页数据接口从数据库系统获取数据,再利用数据库复制技术,同步数据至目标数据库。
3、然而,现有技术中,利用分页接口技术获取数据,再依次同步数据至目标数据库的过程中需要频繁的进行i/o操作才能完成数据的同步,给系统带来较大的运行压力,并且降低了数据同步的效率。
技术实现思路
1、本申请提供一种数据同步处理方法、装置、服务器及存储介质,以解决现有技术中利用分页接口技术获取数据,再依次同步数据至目标数据库的过程中需要频繁的进行i/o操作才能完成数据的同步,给系统带来较大的运行压力,并且降低了数据同步的效率问题。
2、第一方面,本申请提供一种数据同步处理方法,应用于redis系统,包括:
3、接收用户端发送的数据同步请求,其中所述数据同步请求用于指示将源数据库的待同步数据同步至目标数据库;
4、针对所述数据同步请
5、将各子任务并分配至线程池,在线程池中启动各子任务以执行如下步骤:启动任一子任务以分页调用应用程序编程api接口,通过所述api接口从所述源数据库中获取所述待同步数据中的部分数据块;对获取到的所述部分数据块进行解析,以得到解析数据;
6、将所有子任务得到的解析数据存储至redis系统的存储器中;
7、启动线程池中的各子任务以执行如下步骤:启动任一子任务以调用api接口,通过所述api接口从所述redis系统的存储器中获取预设数量的所述解析数据;对所述解析数据进行整合,以得到整合数据;
8、将所有子任务得到的整合数据发送至目标数据库,以完成所述待同步数据的同步。
9、在一种可能的设计中,所述对获取到的所述部分数据块进行解析,以得到解析数据,包括:启动所述redis系统的解析器对所述部分数据块进行解析;若所述部分数据块解析未出错,则得到解析数据。
10、在一种可能的设计中,所述启动所述redis系统的解析器对所述部分数据块进行解析之后,还包括:若任一部分数据块解析出错,则根据解析出错的信息更新共享状态,并停止所有子任务;重新执行“针对所述数据同步请求建立主处理任务,并将所述主处理任务拆分为各子任务”的步骤。
11、在一种可能的设计中,针对所述数据同步请求建立主处理任务之后,还包括:为所述主处理任务配置标识符;相应地,重新执行“针对所述数据同步请求建立主处理任务,并将所述主处理任务拆分为各子任务”的步骤之后,还包括:重新为所述主处理任务配置标识符;统计为所述主处理任务配置标识符的配置次数;若所述配置次数超过阈值,则结束所述待同步数据的同步;若所述配置次数未超过阈值,则更新所述主处理任务的标识符。
12、在一种可能的设计中,所述将所有子任务得到的解析数据存储至redis系统的存储器中,包括:为所述解析数据生成key值;确定所述key值与所述解析数据的映射关系;将所述key值与所述解析数据的映射关系存储至redis系统的存储器中。
13、在一种可能的设计中,所述将所述key值与所述解析数据的映射关系存储至redis系统的存储器中之后,还包括:获取所述key值的生存时间;若所述生存时间超过预设阈值,则删除所述key值与所述解析数据的映射关系。
14、第二方面,本申请提供一种数据同步处理装置,应用于redis系统,包括:
15、接收模块:用于接收用户端发送的数据同步请求,其中所述数据同步请求用于指示将源数据库的待同步数据同步至目标数据库;
16、任务建立、拆分模块:用于针对所述数据同步请求建立主处理任务,并将所述主处理任务拆分为各子任务;
17、第一子任务处理模块:用于将各子任务并分配至线程池,在线程池中启动各子任务以执行如下步骤:启动任一子任务以分页调用应用程序编程api接口,通过所述api接口从所述源数据库中获取所述待同步数据中的部分数据块;对获取到的所述部分数据块进行解析,以得到解析数据;
18、存储模块:用于将所有子任务得到的解析数据存储至redis系统的存储器中;
19、第二子任务处理模块:用于启动线程池中的各子任务以执行如下步骤:启动任一子任务以调用api接口,通过所述api接口从所述redis系统的存储器中获取预设数量的所述解析数据;对所述解析数据进行整合,以得到整合数据;
20、发送模块:用于将所有子任务得到的整合数据发送至目标数据库,以完成所述待同步数据的同步。
21、在一种可能的设计中,所述第一子任务处理模块:具体用于启动所述redis系统的解析器对所述部分数据块进行解析;若所述部分数据块解析未出错,则得到解析数据。
22、第三方面,本申请提供一种服务器,包括:至少一个处理器和存储器;
23、所述存储器存储计算机执行指令;
24、所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的数据同步处理方法。
25、第四方面,本申请提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数据同步处理方法。
26、本申请提供的数据同步处理方法、装置、服务器及存储介质,首先接收用户端发送的数据同步请求,针对该请求建立主处理任务,并将主处理任务拆分为各子任务;启动任一子任务以调用api接口,从源数据库中获取待同步数据中的部分数据块,并对其进行解析以得到解析数据;存储解析数据至redis系统的存储器中;启动任一子任务以调用api接口,从redis系统的存储器中获取预设数量的解析数据,并对解析数据进行整合,以得到整合数据;发送各子任务得到的整合数据至目标数据库,以完成待同步数据的同步。将redis系统作为数据库之间进行数据同步的中转站,通过从redis系统的存储器中获取预设数量的解析数据,减少了i/o操作的次数,降低了系统的运行压力,并且提高了数据同步的效率。
本文档来自技高网...【技术保护点】
1.一种数据同步处理方法,其特征在于,应用于Redis系统,包括:
2.根据权利要求1所述的方法,其特征在于,所述对获取到的所述部分数据块进行解析,以得到解析数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述启动所述Redis系统的解析器对所述部分数据块进行解析之后,还包括:
4.根据权利要求3所述的方法,其特征在于,针对所述数据同步请求建立主处理任务之后,还包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述将所有子任务得到的解析数据存储至Redis系统的存储器中,包括:
6.根据权利要求5所述的方法,其特征在于,所述将所述key值与所述解析数据的映射关系存储至Redis系统的存储器中之后,还包括:
7.一种数据同步处理装置,其特征在于,应用于Redis系统,包括:
8.根据权利要求7所述的装置,其特征在于,
9.一种服务器,其特征在于,包括:至少一个处理器和存储器;
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机执行指令,当
...【技术特征摘要】
1.一种数据同步处理方法,其特征在于,应用于redis系统,包括:
2.根据权利要求1所述的方法,其特征在于,所述对获取到的所述部分数据块进行解析,以得到解析数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述启动所述redis系统的解析器对所述部分数据块进行解析之后,还包括:
4.根据权利要求3所述的方法,其特征在于,针对所述数据同步请求建立主处理任务之后,还包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述将所有子任务得到的解析数据存储至redis系统的存储器...
【专利技术属性】
技术研发人员:彭江铃,蒋军君,徐馨雨,唐鸿运,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。