数据同步方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:20425212 阅读:33 留言:0更新日期:2019-02-23 08:31
本发明专利技术公开了一种数据同步方法、装置、计算机设备及存储介质,所述方法包括:若中心节点检测到中心数据库有更新,则向子节点发送同步请求,其中,同步请求包括数据同步参数;子节点根据接收到的数据同步参数,采用反射机制,获取表字段类型;子节点根据表字段类型,将数据同步参数进行拼接,生成SQL语句;子节点执行SQL语句,更新节点数据库。本发明专利技术的技术方案利用反射机制,获取表字段相关的信息,动态拼接成SQL语句,减少表操作语句代码,使得维护各子系统API接口变得更加简单,同时,集中管理公共数据,减少维护成本。

【技术实现步骤摘要】
数据同步方法、装置、计算机设备及存储介质
本专利技术涉及信息处理领域,尤其涉及一种数据同步方法、装置、计算机设备及存储介质。
技术介绍
在分布式数据库应用系统中,存在一些公共的数据需要集中管理、统一维护。因而,通常将这些数据存放到某个中心节点上,该中心节点被称为父系统,或基础数据公共系统;而与之相对应的,其他节点称为子系统。当子系统需要访问公共数据时,向父系统发起请求;当请求量大的时候,父系统的访问压力骤增。为了缓解父系统的访问压力,通常将公共数据备份到有相关业务的子系统中,由各子系统直接访问本地的数据即可。这样带来一个问题:父子系统上的公共数据同步问题,即当父系统中公共数据修改后,子系统上的公共数据需要与父系统保持一致。由于公共数据涉及的表众多,对子系统每个表进行批量数据修改操作,使得开发成本增大,同时,数据维护成本高。
技术实现思路
本专利技术实施例提供一种数据同步方法、装置、计算机设备及存储介质,以解决分布式数据库应用系统中,中心节点和子节点之间数据同步的维护成本高的问题。一种数据同步方法,包括:子节点接收中心节点发送的同步请求,所述同步请求包括数据同步参数,且所述同步请求为所述中心节点检测到中心数据库有更新后发送;所述子节点根据接收到的所述数据同步参数,采用反射机制,获取表字段类型;所述子节点根据所述表字段类型,将所述数据同步参数进行拼接,生成SQL语句;所述子节点执行所述SQL语句,更新所述子节点的节点数据库。一种数据同步装置,包括:接收模块,用于接收中心节点发送的同步请求,所述同步请求包括数据同步参数,且所述同步请求为所述中心节点检测到中心数据库有更新后发送;生成表字段模块,用于根据接收到的所述数据同步参数,采用反射机制,获取表字段类型;拼接模块,用于根据所述表字段类型,将所述数据同步参数进行拼接,生成SQL语句;更新模块,用于执行所述SQL语句,更新所述子节点的节点数据库。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据同步方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据同步方法的步骤。上述数据同步方法、装置、计算机设备及存储介质,在分布式数据库应用系统中,中心节点将同步请求下发给子节点,子节点采用反射机制,根据同步请求中的数据同步参数,获取表字段,使得子节点可以及时获取中心节点所更新的表包括哪些表字段;然后将表字段与同步请求中的数据同步参数进行拼接,生成SQL语句,最后由子节点执行生成的SQL语句,从而完成节点数据库的更新,使得子节点能自动完成与中心节点数据库的同步,大量减少在子节点开发SQL语句的工作量,节省开发成本;同时,降低了中心节点与子节点数据同步的维护成本,便于数据维护和系统升级。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例中数据同步方法的一应用环境示意图;图2是本专利技术一实施例中数据同步方法的流程图;图3是本专利技术一实施例中数据同步方法中数据完整性校验的流程图;图4是本专利技术一实施例中数据同步方法中数据完整性校验失败后请求数据重发的流程图;图5是本专利技术一实施例中数据同步方法中节点数据库更新的流程图;图6是本专利技术一实施例中数据同步方法中节点数据库更新失败后请求数据重发的流程图;图7是本专利技术一实施例中数据同步装置的示意图;图8是本专利技术一实施例中计算机设备的示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本申请提供的数据同步方法,可应用在如图1的分布式数据库应用系统中,其中,中心节点处于分布式数据库应用系统的中心,子节点与中心节点相连;中心节点和子节点可以是服务器,中心节点与中心数据库相连,子节点与节点数据库相连,中心数据库和节点数据库是各自独立的;中心节点负责对其上的数据进行修改、管理和维护,主要是通过对数据表的操作来实现,子节点须与中心节点进行数据同步。例如,中心节点上有数据表A和数据表B,当中心节点对数据表A和数据表B进行了更新操作时,则子节点中有数据表A和数据表B,或有其中之一的子节点,须要更新本地节点数据库,与中心节点进行数据同步,子节点中的其他数据表,如数据表C、数据表D则不需要更新。中心数据库和节点数据库可以使用相同的数据库管理系统,也可以使用不同的数据库管理系统。数据库包括关系型数据库和非关系型数据库,具体的数据库管理系统包括但不限于MS-SQL、Oracle、MySQL、Sybase、DB2、NoSQL、Redis、MongoDB等。本专利技术实施例提供的数据同步方法应用于子节点。在一实施例中,如图2所示,提供了一种数据同步方法,其具体实现流程包括如下步骤:S1:子节点接收中心节点发送的同步请求,同步请求包括数据同步参数,且同步请求为中心节点检测到中心数据库有更新后发送。在分布式数据库应用系统中,中心节点作为分布式数据库的中心服务器,负责对数据进行操作、管理和维护,而与之相对的子节点则没有主动对数据进行操作、管理和维护的权限,需保持与中心节点的数据同步。分布式数据库应用系统包括但不限于各种由Java服务器组成的应用系统,如企业内部的员工管理系统、业务数据共享系统等。数据库管理系统包括但不限于Oracle,SQLSever,Sybase,MySQL等。当中心节点上对中心数据库进行修改操作时,中心节点向子节点发送同步请求,通知子节点进行同步操作。举例来说,企业内部的业务数据共享系统中,中心节点的物理位置位于某省会,而子节点的物理位置位于该省下的其他地市。可以理解地,中心节点上层还可以有中心节点,子节点下层还可以有子节点,即省会级的各中心节点上还有全国级的中心节点,相对于全国级的中心节点,省会级的中心节点相当于子节点;地市级的子节点下层还可以有乡镇级子节点,相对于乡镇级子节点,地市级的子节点相当于中心节点。这样庞大的分布式数据库应用系统在更新数据时,总是由中心节点开始更新,子节点随后与之同步,从而完成从上到下的数据更新。数据同步参数是中心节点更新中心数据库后,子节点进行数据同步时需要的信息,包括但不限于类名、对象名、数据表名、对数据表进行的操作类型、数据表的数据记录值等。具体地,若中心节点对中心数据库中的表A和表B分别进行了插入和更新操作,其SQL语句为:InertintoAvalues(‘张三’,‘25’);InertintoAvalues(‘李四’,‘26’);InertintoAvalues(‘王五’,‘27’);InertintoAvalues(‘赵六’,‘28’);InertintoAvalues(‘张七’,‘29’);UpdateBsetTel=’132000012本文档来自技高网...

【技术保护点】
1.一种数据同步方法,其特征在于,所述数据同步方法包括:子节点接收中心节点发送的同步请求,所述同步请求包括数据同步参数,且所述同步请求为所述中心节点检测到中心数据库有更新后发送;所述子节点根据接收到的所述数据同步参数,采用反射机制,获取表字段类型;所述子节点根据所述表字段类型,将所述数据同步参数进行拼接,生成SQL语句;所述子节点执行所述SQL语句,更新所述子节点的节点数据库。

【技术特征摘要】
1.一种数据同步方法,其特征在于,所述数据同步方法包括:子节点接收中心节点发送的同步请求,所述同步请求包括数据同步参数,且所述同步请求为所述中心节点检测到中心数据库有更新后发送;所述子节点根据接收到的所述数据同步参数,采用反射机制,获取表字段类型;所述子节点根据所述表字段类型,将所述数据同步参数进行拼接,生成SQL语句;所述子节点执行所述SQL语句,更新所述子节点的节点数据库。2.如权利要求1所述的数据同步方法,其特征在于,所述同步请求还包括校验参数,所述校验参数包括数据包的发送总次数和数据包的版本信息,所述子节点接收中心节点发送的同步请求之后,以及所述子节点根据接收到的所述数据同步参数,采用反射机制,获取表字段类型之前,所述数据同步方法还包括:所述子节点从所述同步请求中提取并保存所述数据包的发送总次数、所述数据包的版本信息和所述数据同步参数;若所述子节点检测到当前接收到的相同的版本信息的次数与所述数据包的发送总次数相等,则确认所述数据包已经接收完整。3.如权利要求2所述的数据同步方法,其特征在于,所述子节点从所述同步请求中提取并保存所述数据包的发送总次数、所述数据包的版本信息和所述数据同步参数之后,所述数据同步方法还包括:若在达到预设的时间间隔时,所述子节点检测到当前接收到的相同的版本信息的次数与所述数据包的发送总次数不相等,则确认所述数据包没有接收完整;所述子节点向所述中心节点请求重新发送所述数据包对应的同步请求。4.如权利要求2所述的数据同步方法,其特征在于,所述校验参数还包括所述数据同步参数的数据条数,所述子节点执行所述SQL语句,更新所述子节点的节点数据库之后,所述数据同步方法还包括:所述子节点统计更新完成的数据记录数;若所述子节点更新完成的数据记录数等于接收到的所述数据同步参数的数据条数的总和,则确认所述子节点更新所述节...

【专利技术属性】
技术研发人员:陈林
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1