基于服务锁的数据同步方法及装置、电子设备与存储介质制造方法及图纸

技术编号:24756305 阅读:16 留言:0更新日期:2020-07-04 09:12
本申请公开了基于服务锁的数据同步方法及装置、电子设备与存储介质,涉及数据存储技术领域。具体实现方案为:基于服务锁的数据同步方法,其特征在于,方法适用于处理多写入源多数据库的数据存储系统中的数据同步,包括:基于写入源的数据写入请求,为写入源配置数据表的服务锁;数据写入请求中携带写入源的标识和数据表的标识;解析数据写入请求对应的同步任务;执行同步任务,使得各数据库中存储的数据表的数据一致。本申请能够提供一套适用于多写入源多数据库的数据存储系统中的完整的数据同步机制,能够在数据写入时配置的服务锁的保护下,执行数据同步操作,保证数据同步操作的安全性和数据的准确性,以及数据的一致性。

Data synchronization method and device, electronic equipment and storage medium based on service lock

【技术实现步骤摘要】
基于服务锁的数据同步方法及装置、电子设备与存储介质
本申请涉及计算机
,尤其涉及数据存储
,具体涉及一种基于服务锁的数据同步方法及装置、电子设备与存储介质。
技术介绍
目前,数据同步的场景通常是数据库集群间的数据同步、数据库与缓存间的数据同步等,在这些场景下数据的格式通常是固定的,数据同步方案实现较为简单。而对于不同格式的数据库,如关系型数据库与NoSQL数据库间数据同步的方案,现有技术中具体可以采用手动的方式,将数据从关系型数据库中导出,利用工具,转换为NoSQL数据库的存储格式,在NoSQL数据库中创建新的索引,将转换后的数据导入新的索引中。而在多写入源多数据库的应用场景中,例如,某种数据存储系统中,存在至少两种类型的数据库,如包括有关系型数据库和NoSQL数据库。其中,关系型数据库存储基础数据,NoSQL数据库对待提供数据查询服务,作为数据查询引擎使用。该场景下,由于存在多个写入源,多个数据库,数据同步的过程若采用现有的上述手动方式来实现,自动化程度低,人力成本高;数据的准确性完全依赖于人工操作,可靠性低;而且同步过程分析过于独立,未考虑多写入源的限制,因此,亟需提供一种多写入源多数据库的数据存储系统中的数据同步方案。
技术实现思路
为了解决上述技术问题,本申请提供一种基于服务锁的数据同步方法及装置、电子设备与存储介质,用于提供一种多写入源多数据库的数据存储系统中的数据同步方案。一方面,本申请提供一种基于服务锁的数据同步方法,所述方法适用于处理多写入源多数据库的数据存储系统中的数据同步,包括:基于写入源的数据写入请求,为所述写入源配置数据表的服务锁;所述数据写入请求中携带所述写入源的标识和所述数据表的标识;解析所述数据写入请求对应的同步任务;执行所述同步任务,使得各所述数据库中存储的所述数据表的数据一致。进一步可选地,如上所述的方法中,为所述写入源配置数据表的服务锁,包括:配置所述服务锁的信息,所述服务锁的信息包括所述写入源的标识、所述数据表的标识以及所述服务锁的状态,所述服务锁的状态设置为占用。进一步可选地,如上所述的方法中,解析所述数据写入请求对应的同步任务,包括:解析所述数据写入请求对应的所述同步任务,并编排生成任务链,所述任务链中至少顺次包括:创建同步任务、执行同步任务和删除同步任务;或者,在所述任务链中的所述创建同步任务之后,所述执行同步任务之前,还包括数据写入任务。进一步可选地,如上所述的方法中,为所述写入源配置数据表的服务锁之后,解析所述数据写入请求对应的同步任务之前,所述方法还包括:创建所述数据写入请求对应的任务,并将任务标识及对应的任务状态存储在任务管理数据库中;所述任务状态为未执行;对应地,解析所述数据写入请求对应的同步任务之前,还包括:从所述任务管理数据库中获取未执行的所述任务。进一步可选地,如上所述的方法中,执行所述同步任务,包括:调度主节点服务器上的多个任务执行器分别执行所述任务链中的各任务;将所述任务管理数据库中对应的所述任务的状态修改为执行中;调度主节点服务器上的多个任务执行器分别执行所述任务链中的各任务之前,还包括:控制部署的多个服务器中的各所述服务器检测自身是否为主节点服务器。进一步可选地,如上所述的方法中,控制部署的多个服务器中的各所述服务器检测自身是否为主节点服务器,包括:控制各所述服务器向选主模块发送携带所述服务器的节点标识和所述任务标识的选主请求;由所述选主模块检测是否有其他服务器执行所述任务标识对应的任务,若没有,将所述服务器设置为主节点服务器,并将检测结果反馈给所述服务器。进一步可选地,如上所述的方法中,执行所述同步任务之后,所述方法还包括:将所述任务管理数据库中对应的所述任务的状态修改为执行完;将配置的所述服务锁的信息中所述服务锁的状态修改为已释放。另一方面,本申请还提供了一种基于服务锁的数据同步装置,所述装置适用于处理多写入源多数据库的数据存储系统中的数据同步,包括:锁服务组件,用于基于写入源的数据写入请求,为所述写入源配置数据表的服务锁;所述数据写入请求中携带所述写入源的标识和所述数据表的标识;任务调度器,用于解析所述数据写入请求对应的同步任务;任务执行器,用于执行所述同步任务,使得各所述数据库中存储的所述数据表的数据一致。再一方面,本申请还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一项所述的方法。又一方面,本申请还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上任一项所述的方法。上述申请中的一个实施例具有如下优点或有益效果:通过基于写入源的数据写入请求,为写入源配置数据表的服务锁;数据写入请求中携带写入源的标识和数据表的标识;解析数据写入请求对应的同步任务;执行同步任务,使得各数据库中存储的数据表的数据一致,能够提供一套适用于多写入源多数据库的数据存储系统中的完整的数据同步机制,能够在数据写入时配置的服务锁的保护下,执行数据同步操作,保证数据同步操作的安全性和数据的准确性,而且也能够有效地保证各数据库之间的数据的一致性。进一步地,本申请还可以采用任务管理数据库对所有的任务进行综合管理,在任务调度器的调度下,由主节点服务器对未执行的任务进行选取和执行,可以有效地保证同步任务执行的安全性和数据的准确性。进一步地,本申请还能够在任务执行中对任务的状态进行更新,避免任务被多次执行,确保数据同步的准确性和数据的一致性。同时还能够对服务锁的状态进行及时更新,能够有效地保证系统中数据的安全性。上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1是根据本申请第一实施例的示意图;图2为本实施例提供的一种多写入源多数据库的数据存储系统的应用架构图;图3是本申请第二实施例的示意图;图4为图3所示实施例的应用架构图;图5是根据本申请第三实施例的示意图;图6是用来实现本申请实施例的基于服务锁的数据同步方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本申请第一实施例的示意图,如图1所示,详细介绍了一种基于服务锁的数据同步方法,该适用于处理多写入源多数本文档来自技高网...

【技术保护点】
1.一种基于服务锁的数据同步方法,其特征在于,所述方法适用于处理多写入源多数据库的数据存储系统中的数据同步,包括:/n基于写入源的数据写入请求,为所述写入源配置数据表的服务锁;所述数据写入请求中携带所述写入源的标识和所述数据表的标识;/n解析所述数据写入请求对应的同步任务;/n执行所述同步任务,使得各所述数据库中存储的所述数据表的数据一致。/n

【技术特征摘要】
1.一种基于服务锁的数据同步方法,其特征在于,所述方法适用于处理多写入源多数据库的数据存储系统中的数据同步,包括:
基于写入源的数据写入请求,为所述写入源配置数据表的服务锁;所述数据写入请求中携带所述写入源的标识和所述数据表的标识;
解析所述数据写入请求对应的同步任务;
执行所述同步任务,使得各所述数据库中存储的所述数据表的数据一致。


2.根据权利要求1所述的方法,其特征在于,为所述写入源配置数据表的服务锁,包括:配置所述服务锁的信息,所述服务锁的信息包括所述写入源的标识、所述数据表的标识以及所述服务锁的状态,所述服务锁的状态设置为占用。


3.根据权利要求2所述的方法,其特征在于,解析所述数据写入请求对应的同步任务,包括:解析所述数据写入请求对应的所述同步任务,并编排生成任务链,所述任务链中至少顺次包括:创建同步任务、执行同步任务和删除同步任务;
或者,在所述任务链中的所述创建同步任务之后,所述执行同步任务之前,还包括数据写入任务。


4.根据权利要求3所述的方法,其特征在于,为所述写入源配置数据表的服务锁之后,解析所述数据写入请求对应的同步任务之前,所述方法还包括:
创建所述数据写入请求对应的任务,并将任务标识及对应的任务状态存储在任务管理数据库中;所述任务状态为未执行;
对应地,解析所述数据写入请求对应的同步任务之前,还包括:
从所述任务管理数据库中获取未执行的所述任务。


5.根据权利要求4所述的方法,其特征在于,执行所述同步任务,包括:
调度主节点服务器上的多个任务执行器分别执行所述任务链中的各任务;
将所述任务管理数据库中对应的所述任务的状态修改为执行中;
调度主节点服务器上的多个任务执行器分别执行所述任务链中的各任务之前,还包括:
控制部署的多个服务器中的各所述服务器检测自身是否为主节点服务器。


6.根据权利要求5所述的方法,其特征在于,控制部署的多个服务器中的各所述服务器检测自身是否为主节点服务器,包括:
控制各所述服务器向选主模块发送携带所述服务器的节点标识和所述任务标识的选主请求;由所述选主模块检测是否有其他服务器执行所述任务标识对应的任务,若没有,将所述服务器设置为主节点服务器,并将检测结果反馈给所述服务器。


7.根据权利要求4-6任一所述的方法,其特征在于,执行所述同步任务之后,所述方法还包括:
将所述任务管理数据库中对应的所述任务的状态修改为执行完;
将配置的所述服务锁的信息中所述服务锁的状态修改为已释放。


8.一种基于服务锁的数据同步装置,其特征在于,所述装置适用于处理多写入源多数据库的数据存储系统中的数据同步,包括:
锁服...

【专利技术属性】
技术研发人员:魏志军张萌萌
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1