数据同步的方法、装置、电子设备及存储介质
技术领域
本申请涉及数据处理
技术领域
,尤其涉及一种数据同步的方法、装置、电子设备及存储介质。背景技术
在当前互联网时代,许多企业的数据访问需求量增长迅速,使用到的数据越来越多,离线数据同步的需求越来越大。单一的核心数据库往往无法支撑越来越大的并发操作,为此许多企业建立多个跨区域的目标数据库,将大量业务数据从核心数据库转移到相应的目标数据库中。为确保企业业务的正常运转,核心数据库与各区域的目标数据库之间需要实现数据同步,保证数据的完整性和一致性。
在现有技术中,在进行数据同步时,通常都是使用单机同步服务器进行数据同步,当业务量增大,单机同步服务器不能支撑时,则需要分配数据同步任务到多台同步服务器进行处理,这时就需要人工制定数据同步任务并分配数据同步任务到各台同步服务器。并且,数据同步任务分配到多台服务器后,对于各个数据同步任务的执行状态的信息只有对应的同步服务器知道。这就导致现有技术中数据同步的效率比较低,数据同步的信息比较分散,无法统一管理和监控的问题。
发明内容
有鉴于此,本申请提供一种数据同步的方法、装置、电子设备及存储介质,以解决现有技术中数据同步的效率比较低,数据同步的信息比较分散,无法统一管理和监控的问题。
为实现上述目的,本申请提供如下技术方案:
本申请第一方面公开了一种数据同步的方法,包括:
获取待同步的数据;
基于所述待同步的数据,创建所述待同步的数据的数据同步任务;
将创建的所述数据同步任务写入消息队列;
调用同步服务器读取所述消息队列中的所述数据同步任务,并按照所述数据同步任务进行数据同步;
接收所述同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,并保存到数据库。
可选的,上述的方法,所述基于所述待同步的数据,创建所述待同步的数据的数据同步任务,包括:
基于所述待同步的数据,确定所述待同步的数据的数据同步方式和数据同步周期;
按照所述待同步的数据的同步方式和同步周期,创建所述待同步的数据的数据同步任务。
可选的,上述的方法,所述将创建的所述数据同步任务写入消息队列之前,还包括:
将创建的所述数据同步任务进行数据封装。
可选的,上述的方法,所述调用同步服务器读取所述消息队列中的所述数据同步任务,并按照所述数据同步任务进行数据同步,包括:
调用所述同步服务器解析所述消息队列中的所述数据同步任务,得到所述数据同步任务对应的数据同步方式和数据同步周期;
调用所述同步服务器根据所述数据同步任务对应的数据同步方式,查找出所述数据同步任务对应的同步插件;
调用所述同步服务器利用查找到的同步插件,按照所述数据同步任务的数据同步周期执行数据同步操作。
可选的,上述的方法,所述接收所述同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志之后,还包括:
读取所述同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,判段所述数据同步任务是否正常执行;
若判段出所述数据同步任务没有正常执行,则生成报警信息,并将所述报警信息发送到客户端。
本申请第二方面公开了一种数据同步的装置,包括:
获取单元,用于获取待同步的数据;
创建单元,用于基于所述待同步的数据,创建所述待同步的数据的数据同步任务;
数据写入单元,用于将创建的所述数据同步任务写入消息队列;
调用单元,用于调用同步服务器读取所述消息队列中的所述数据同步任务,并按照所述数据同步任务进行数据同步;
接收单元,用于接收所述同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,并保存到数据库。
可选的,上述的装置,所述创建单元,包括:
确定子单元,用于基于所述待同步的数据,确定所述待同步的数据的数据同步方式和数据同步周期;
创建子单元,用于按照所述待同步的数据的同步方式和同步周期,创建所述待同步的数据的数据同步任务。
可选的,上述的装置,还包括:
封装单元,用于将创建的所述数据同步任务进行数据封装。
可选的,上述的装置,所述调用单元,包括:
解析子单元,用于调用所述同步服务器解析所述消息队列中的所述数据同步任务,得到所述数据同步任务对应的数据同步方式和数据同步周期;
查找子单元,用于调用所述同步服务器根据所述数据同步任务对应的数据同步方式,查找出所述数据同步任务对应的同步插件;
执行子单元,用于调用所述同步服务器利用查找到的同步插件,按照所述数据同步任务的数据同步周期执行数据同步操作。
可选的,上述的装置,还包括:
判断单元,用于读取所述同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,判段所述数据同步任务是否正常执行;
发送单元,用于若判段出所述数据同步任务没有正常执行,则生成报警信息,并将所述报警信息发送到客户端。
本申请第三方面公开了一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如本申请第一方面中任意一项所述的方法。
本申请第四方面公开了一种计算机存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如本申请第一方面中任意一项所述的方法。
从上述技术方案可以看出,本申请提供的一种数据同步的方法,管理后台首先获取待同步的数据,然后基于待同步的数据,创建待同步的数据的数据同步任务,并将创建的数据同步任务写入消息队列。调用同步服务器读取消息队列中的数据同步任务,并按照数据同步任务进行数据同步。数据同步过程中,接收同步服务器发送的数据同步任务执行状态信息和数据同步任务执行日志,并保存到数据库。由此可知,利用本申请的方法,可以通过管理后台统一创建数据同步任务,调用各个同步服务器来执行数据同步任务,提升了数据同步的效率,并通过同步服务器返回的数据,对数据同步的状态进行监控。解决了现有技术中数据同步的效率比较低,数据同步的信息比较分散,无法统一管理和监控的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种数据同步的方法的流程图;
图2为本申请另一实施例公开的应用数据同步的方法的系统架构图;
图3为本申请另一实施例公开的步骤S104的一种实施方式的流程图;
图4为本申请另一实施例公开的一种数据同步的装置的示意图;
图5为本申请另一实施例公开的一种电子设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
并且,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
由背景技术可知,在进行数据同步时,通常都是使用单机同步服务器进行数据同步,当业务量增大,单机同步服务器不能支撑时,则需要分配数据同步任务到多台同步服务器进行处理,这时就需要人工制定数据同步任务并分配数据同步任务到各台同步服务器。并且,数据同步任务分配到多台服务器后,对于各个数据同步任务的执行状态的信息只有对应的同步服务器知道。这就导致现有技术中数据同步的效率比较低,数据同步的信息比较分散,无法统一管理和监控的问题。
鉴于此,本申请提供一种数据同步的方法、装置、电子设备及存储介质,以解决现有技术中数据同步的效率比较低,数据同步的信息比较分散,无法统一管理和监控的问题。
本申请实施例提供了一种数据同步的方法,具体如图1所示,可以包括:
S101、获取待同步的数据。
需要说明的是,在进行数据同步时,管理后台配通过配置好的数据源,获取待同步的数据。
为方便理解,本实施例提供了数据同步的系统架构图,参见图2。在管理后台上,可以实现添加数据源、创建同步任务、查看任务状态、创建任务监控报警、管理同步插件等功能。元数据库为关系型数据库,用于保存数据源、同步任务、任务运行状态等信息。消息队列用于保存当前待同步任务,由管理后台写入数据,同步服务器消费数据,起到组件间的解耦作用。同步服务器可以消费消息队列中的任务信息,以及执行同步任务计划,并上报任务状态到管理后台。同步插件包括各种类型的同步插件,比如数据库、文件scp、ftp、rsync、api接口等。通过这些插件,使集群真正获得各类方式的同步功能。插件采用热插拔方式,当需要采用新的同步方式时,只需要实现相关功能后就可加入集群提供使用。
S102、基于待同步的数据,创建待同步的数据的数据同步任务。
需要说明的是,在获取到待同步的数据之后,管理后台则创建待同步的数据的数据同步任务,其中,数据同步任务包括指定数据源、数据同步的方式、数据同步所用的插件、数据同步的周期等内容。
可选的,在本申请的另一实施例中,步骤S102的一种实施方式,可以包括:
基于待同步的数据,确定待同步的数据的数据同步方式和数据同步周期。
按照待同步的数据的同步方式和同步周期,创建待同步的数据的数据同步任务。
需要说明的是,在获取到待同步的数据之后,则基于待同步的数据,确定出待同步的数据的数据同步方式。同时根据数据内容,确定出待同步的数据的数据同步周期。然后按照待同步的数据的数据同步方式以及待同步的数据的数据同步周期,创建待同步的数据的数据同步任务,同步服务器就可以按照数据同步任务的内容对数据进行同步。
S103、将创建的数据同步任务写入消息队列。
需要说明的是,在创建出待同步数据的数据内容之后,将创建的数据同步任务写入消息队列中,同步服务器就可以从消息队列中获取到创建好的数据同步任务。
可选的,在本申请的另一实施例中,在执行步骤S103之前,还可以包括:
将创建的数据同步任务进行数据封装。
需要说明的是,为了可靠和准确地将数据发送到目标地址,并且高效地利用传输资源,则将创建好的数据同步任务进行数据封装,然后再将封装好的数据同步任务写到消息队列中。
S104、调用同步服务器读取消息队列中的数据同步任务,并按照数据同步任务进行数据同步。
需要说明的是,在管理后台将创建的数据同步任务写入消息队列之后,那么就调用同步服务器读取消息队列中的数据同步任务,然后对读取到数据同步任务进行解析,按照数据同步任务中的数据同步方式以及数据同步周期等内容,对待同步的数据执行数据同步的操作。
可选的,在本申请的另一实施例中,步骤S104的一种实施方式,如图3所示,可以包括:
S301、调用同步服务器解析消息队列中的数据同步任务,得到数据同步任务对应的数据同步方式和数据同步周期。
需要说明的是,同步服务器在获取到消息队列中的数据同步任务之后,则对数据同步任务进行解析,得到数据同步任务对应的数据同步方式和数据同步周期。
S302、调用同步服务器根据数据同步任务对应的数据同步方式,查找出数据同步任务对应的同步插件。
需要说明的是,同步服务器根据数据同步任务对应的数据同步方式,查找出当前数据同步方式所需要的同步插件。
S303、调用同步服务器利用查找到的同步插件,按照数据同步任务的数据同步周期执行数据同步操作。
需要说明的是,同步服务器根据查找到的同步插件,配置好同步插件,再按照数据同步任务的数据同步周期,在数据同步任务对应的时间周期内执行待同步数据的数据同步操作。
S105、接收同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,并保存到数据库。
需要说明的是,同步服务器在执行数据同步任务的时候,会生成数据同步任务的执行日志,并且按照预设的周期将数据同步任务的执行状态的信息和数据同步任务的执行日志发送到管理后台。管理后台接收到数据同步任务的执行状态的信息和数据同步任务的执行日志之后,就可以监控数据同步任务的执行状态,并将数据同步任务执行状态信息和数据同步任务执行日志保存到数据库。用户在管理后台可以看到各个数据任务的执行状态以及日志以及查看其他数据同步任务的历史数据。
可选的,在本申请的另一实施例中,在执行步骤S105中接收同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志之后,还可以包括:
读取同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,判段数据同步任务是否正常执行。
若判段出数据同步任务没有正常执行,则生成报警信息,并将报警信息发送到客户端。
需要说明的是,管理后台在接收到同步服务器发送的数据同步任务执行状态信息和数据同步任务执行日志之后,则读取同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,判段数据同步任务是否正常执行。如果判段出数据同步任务没有正常执行,则生成报警信息,并将报警信息发送到客户端,提示数据同步任务状态异常。
本申请实施例提供了一种数据同步的方法,管理后台首先获取待同步的数据,然后基于待同步的数据,创建待同步的数据的数据同步任务,并将创建的数据同步任务写入消息队列。调用同步服务器读取消息队列中的数据同步任务,并按照数据同步任务进行数据同步。数据同步过程中,接收同步服务器发送的数据同步任务执行状态信息和数据同步任务执行日志,并保存到数据库。由此可知,利用本申请的方法,可以通过管理后台统一创建数据同步任务,调用各个同步服务器来执行数据同步任务,提升了数据同步的效率,并通过同步服务器返回的数据,对数据同步的状态进行监控。解决了现有技术中数据同步的效率比较低,数据同步的信息比较分散,无法统一管理和监控的问题。
在本申请的另一实施例还公开了一种数据同步装置,如图4所示,包括:
获取单元401,用于获取待同步的数据。
创建单元402,用于基于待同步的数据,创建待同步的数据的数据同步任务。
数据写入单元403,用于将创建的数据同步任务写入消息队列。
调用单元404,用于调用同步服务器读取消息队列中的数据同步任务,并按照数据同步任务进行数据同步。
接收单元405,用于接收同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,并保存到数据库。
本实施例中,获取单元401、创建单元402、数据写入单元403、调用单元404以及接收单元405的具体执行过程,可参见对应图1的方法实施例内容,此处不再赘述。
本申请实施例提供了一种数据同步的装置,获取单元401首先获取待同步的数据,然后创建单元402基于待同步的数据,创建待同步的数据的数据同步任务,数据写入单元403将创建的数据同步任务写入消息队列。调用单元404调用同步服务器读取消息队列中的数据同步任务,并按照数据同步任务进行数据同步。数据同步过程中,接收单元405接收同步服务器发送的数据同步任务执行状态信息和数据同步任务执行日志,并保存到数据库。由此可知,利用本申请的方法,可以通过管理后台统一创建数据同步任务,调用各个同步服务器来执行数据同步任务,提升了数据同步的效率,并通过同步服务器返回的数据,对数据同步的状态进行监控。解决了现有技术中数据同步的效率比较低,数据同步的信息比较分散,无法统一管理和监控的问题。
可选的,在本申请的另一实施例中,创建单元402的一种实施方式,可以包括:
确定子单元,用于基于待同步的数据,确定待同步的数据的数据同步方式和数据同步周期。
创建子单元,用于按照待同步的数据的同步方式和同步周期,创建待同步的数据的数据同步任务。
本实施例中,确定子单元以及创建子单元的具体执行过程,可参见上述对应的方法实施例内容,此处不再赘述。
可选的,在本申请的另一实施例中,上述数据同步的装置中,还可以包括:
封装单元,用于将创建的数据同步任务进行数据封装。
本实施例中,封装单元的具体执行过程,可参见上述对应的方法实施例内容,此处不再赘述。
可选的,在本申请的另一实施例中,调用单元404的一种实施方式,可以包括:
解析子单元,用于调用同步服务器解析消息队列中的数据同步任务,得到数据同步任务对应的数据同步方式和数据同步周期。
查找子单元,用于调用同步服务器根据数据同步任务对应的数据同步方式,查找出数据同步任务对应的同步插件。
执行子单元,用于调用同步服务器利用查找到的同步插件,按照数据同步任务的数据同步周期执行数据同步操作。
本实施例中,解析子单元、查找子单元以及执行子单元的具体执行过程,可参见图3对应的方法实施例内容,此处不再赘述。
可选的,在本申请的另一实施例中,上述数据同步的装置中,还可以包括:
判断单元,用于读取同步服务发送的数据同步任务执行状态信息和数据同步任务执行日志,判段数据同步任务是否正常执行。
发送单元,用于若判段出数据同步任务没有正常执行,则生成报警信息,并将报警信息发送到客户端。
本实施例中,判断单元、发送单元的具体执行过程,可参见上述对应的方法实施例内容,此处不再赘述。
本申请另一实施例还提供了一种电子设备,如图5所示,具体包括:
一个或多个处理器501。
存储装置502,其上存储有一个或多个程序。
当一个或多个程序被一个或多个处理器501执行时,使得一个或多个处理器501实现如上述实施例中任意一项方法。
本申请另一实施例还提供了计算机存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述实施例中任意一项方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例中虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本申请实施例中,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种变电站数字孪生的实时同步方法和装置