CN114090687A - 一种数据同步方法及装置 - Google Patents
一种数据同步方法及装置 Download PDFInfo
- Publication number
- CN114090687A CN114090687A CN202111356910.XA CN202111356910A CN114090687A CN 114090687 A CN114090687 A CN 114090687A CN 202111356910 A CN202111356910 A CN 202111356910A CN 114090687 A CN114090687 A CN 114090687A
- Authority
- CN
- China
- Prior art keywords
- center
- subscription
- data
- server
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种数据同步方法及装置,第一中心的服务端接收隶属于第一中心的第一发布端发送的订阅数据;第一中心的服务端若确定对目标业务进行订阅的各订阅端中包括隶属于第二中心的第二订阅端,则基于订阅数据构建订阅文件;第一中心的服务端将订阅文件发送至第二中心的服务端;第二中心的服务端用于在对订阅文件进行解析后、将得到的订阅数据发送至第二订阅端,第二订阅端用于将订阅数据更新至第二业务系统连接的第二数据库中。该方式中由于通过中心的服务端来维护业务对应的发布端与异地中心的订阅端的映射关系,从而可以避免每一次同一数据为多个中心所需要时,发布端需要反复读取数据库而对数据库造成损耗的问题。
Description
技术领域
本申请实施例涉及数据同步技术领域,尤其涉及一种数据同步方法及装置。
背景技术
目前,在业务发展的过程中,异地多中心是主流的发展趋势。对业务进行处理的各核心系统由于需要采用多中心的架构,因此实现各中心间的数据同步尤为重要。
对于多中心的架构,每一个中心部署有一个服务端,任一个服务端可对接若干个业务系统,每一个业务系统连接一个数据库,任一个数据库有一一对应的发布端和订阅端,其中发布端用于在对应的数据库发生更新时,对更新的数据进行发布,订阅端用于在接收到发布端发布的数据后将其存入到相应的数据库中。
以上海、北京两地分别设置有一个中心为例,其中,若北京中心的一业务系统A订阅了上海中心的一业务系统B中某业务X,那么当上海中心的业务X发生更新时,隶属上海中心的业务系统B的发布端则需要远程连接到北京中心的服务端,以进行更新数据的传输,最后由北京中心的服务端将更新数据发送至隶属北京中心的业务系统A的订阅端,以由隶属北京中心的业务系统A的订阅端将更新数据存入到北京中心的业务系统A连接的数据库,从而实现了某一业务下、上海中心-北京中心两地间的数据同步。
然而,上文描述的实现多中心间的数据同步的方案存在以下缺点:在一个中心(设为中心C)的某业务既被隶属本中心的订阅端进行订阅、同时又被隶属异地中心的订阅端进行订阅,或者中心C的该业务同时被多个异地中心的订阅端进行订阅时,那么隶属中心C的发布端每次进行该业务的相关数据的发布时,则需要多次读取该业务对应的数据库,明显增加了源库开销。
发明内容
本申请提供一种数据同步方法及装置,用以当数据需要在本地中心和异地中心间同步时,减轻对源库因为需要多次读取而造成的损害。
第一方面,本申请实施例提供一种数据同步方法,该方法包括:第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据;所述订阅数据是第一业务系统连接的第一数据库中的目标业务发生更新时、需要通过所述第一发布端进行数据同步的数据;所述第一中心的服务端若确定对所述目标业务进行订阅的各订阅端中包括隶属于第二中心的第二订阅端,则基于所述订阅数据构建订阅文件;所述第一中心的服务端将所述订阅文件发送至所述第二中心的服务端;所述第二中心的服务端用于在对所述订阅文件进行解析后、将得到的所述订阅数据发送至所述第二订阅端,所述第二订阅端用于将所述订阅数据更新至第二业务系统连接的第二数据库中。
上述方案中,在一个中心的某业务系统的某一业务所对应的数据需要为异地中心所用时,那么异地中心可以基于自己需要用到的业务而向该中心的服务端进行订阅,由该中心的服务端对业务对应的发布端与异地中心的订阅端之间的映射关系进行保存,从而当该业务在数据库中的数据发生更新时,那么隶属该业务所在的业务系统的发布端将可以将更新的数据发送给该中心的服务端,以由该中心的服务端基于预设的业务对应的发布端与异地中心的订阅端之间的映射关系而将更新的数据发送至对应的异地中心,从而实现了数据在各中心间的同步。该方式中由于通过中心的服务端来维护业务对应的发布端与异地中心的订阅端的映射关系,从而可以避免每一次同一数据为多个中心所需要时,发布端需要反复读取数据库而对数据库造成损耗的问题。
在一种可能实现的方法中,所述第一中心的服务端若确定对所述目标业务进行订阅的各订阅端中包括隶属于所述第一中心的第一订阅端,则将所述订阅数据发送至所述第一订阅端。
上述方案中,在一中心的某业务系统中的某业务既被异地中心的订阅端进行订阅,同时又被本中心的其他业务系统对应的订阅端进行订阅后,那么当该业务在数据库中的数据发生更新时,该业务对应的发布端可以一次性地从数据库中获取到的更新数据并发送至本中心的服务端,从而一方面,本中心的服务端可以通过文件传输的形式而将更新数据发送至有过订阅的异地中心,另一方面,本中心的服务端可以直接将更新数据发送至本地的有过订阅的订阅端,从而实现了在无需反复读取数据库的条件下、将订阅数据在异地中心与本地中心间进行同步的效果。
在一种可能实现的方法中,所述第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据之前,还包括:所述第一中心的服务端接收各订阅端的注册信息;所述注册信息包括订阅端所隶属的中心的中心信息;所述第一中心的服务端更新发布端与订阅端的映射关系,并将所述映射关系同步至其他各中心的服务端;所述映射关系用于确定对业务进行订阅的各订阅端。
上述方案中,第一中心的服务端通过接收各订阅端的注册信息,该注册信息中包括订阅端所隶属的中心的信息,从而第一中心的服务端可以将对业务进行订阅的各订阅端与该业务对应的发布端之间建立映射关系,从而在第一中心的服务端接收到该业务对应的发布端发送而来的订阅数据时,第一中心的服务端将可以基于所建立的映射关系而将接收到的订阅数据以正确的方式发送至相应的中心,比如通过文件的形式传输至异地中心,以及直接将订阅数据发送至本地的相关订阅端;此外,第一中心的服务端在建立好业务对应的发端与对该业务进行订阅的各订阅端之间的映射关系后,第一中心的服务端还可将该映射关系同步至多中心架构中的其他各中心的服务端,如此接收到映射关系的其他各中心在接收到第一中心的服务端发送而来的订阅文件后,将可以基于该映射关系而将订阅文件中订阅数据发送至对的订阅端,如此保证了数据传输的正确性。
在一种可能实现的方法中,所述第一中心的服务端接收中心变更指令;所述中心变更指令用于指示将隶属于第三中心的发布端和订阅端更新为隶属于第四中心;所述第一中心的服务端根据所述中心变更指令,更新所述映射关系。
上述方案中,由于第三中心的服务端在使用的过程中可能发生损坏、暂时无法正常提供服务,因此为了保证第三中心的订阅端仍然能够接收到所订阅的中心(如第一中心)的发布端发布的订阅数据,则可以将第三中心的订阅端与发布端的映射关系更新为隶属于一个可正常提供服务的中心,如第四中心,从而在第一中心的服务端接收到发布端发送来的订阅数据后,可以基于订阅数据构建订阅文件,并将其发送至第四中心的服务端,从而第四中心的服务端可以基于映射关系而将订阅文件中的订阅数据发送至第三中心的订阅端。如此可以满足高可用性,保证了数据同步的效率。
在一种可能实现的方法中,所述第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据之前,还包括:所述第一中心的服务端将本地数据时间戳发送至所述第一发布端;所述第一发布端用于基于所述本地数据时间戳从所述第一数据库中获取所述订阅数据。
上述方案中,在数据同步的过程中,第一中心的服务端通过将本地数据时间戳发送至第一发布端,从而第一发布端可以基于得到的本地数据时间戳而从第一数据库中获取订阅数据,以进行相应的数据同步。该方式保证了数据同步过程中的正确性。
在一种可能实现的方法中,所述第一中心的服务端接收新增中心指令;所述新增中心指令中包括新增中心的配置信息;所述第一中心的服务端基于所述新增中心的配置信息,与所述新增中心完成中心间配置。
上述方案中,在业务扩展的过程中,多中心架构中的中心还可能需要被扩展;本申请方案中由于未做中心扩展前的多中心架构中的各中心的服务端拥有着完全相同的发布端与订阅端的映射关系,并假设第一中心是未做中心扩展前的多中心架构中的一个中心,那么在第一中心的服务端接收到新增中心的指令时,第一中心的服务端将可以将自己本地所有的发布端与订阅端的映射关系同步到该新增中心的配置当中,从而实现了中心的横向拓展。
在一种可能实现的方法中,所述第一中心的服务端将所述订阅文件发送至所述第二中心的服务端之后,还包括:所述第一中心的服务端在设定时长内若未接收到所述第二中心的服务端发送的成功应答消息,则进行重试。
上述方案中,由于数据在同步过程中可能发生无法成功同步到对端的情况,对此,上述方案中当第一中心的服务端在将订阅文件发送至第二中心的服务端之后,若于设定时长内并未接收到的第二中心的服务端发送的成功应答消息,则表示第一中心的服务端确认自己发送出去的订阅文件截至目前为止未被第二中心接收到,为此,第一中心的服务端可以进行重试,即重新向第二中心的服务端发送订阅文件。该方式提升了数据同步过程中的成功率。
第二方面,本申请实施例提供一种数据同步装置,该装置包括:接收单元,用于接收隶属于第一中心的第一发布端发送的订阅数据;所述订阅数据是第一业务系统连接的第一数据库中的目标业务发生更新时、需要通过所述第一发布端进行数据同步的数据;订阅文件构建单元,用于若确定对所述目标业务进行订阅的各订阅端中包括隶属于第二中心的第二订阅端,则基于所述订阅数据构建订阅文件;发送单元,用于将所述订阅文件发送至所述第二中心的服务端;所述第二中心的服务端用于在对所述订阅文件进行解析后、将得到的所述订阅数据发送至所述第二订阅端,所述第二订阅端用于将所述订阅数据更新至第二业务系统连接的第二数据库中。
第三方面,本申请实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一实现方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一实现方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种多中心的架构的示意图;
图2为本申请实施例提供的一种数据同步方法的示意图;
图3为本申请实施例提供的一种数据同步装置的示意图;
图4为本申请实施例提供的一种计算设备的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
如图1所示,为现有技术提供的一种多中心的架构的示意图,其中该架构中包括多个中心。作为示例,设有三个中心,分别令为中心1、中心2和中心3。
进一步的,每个中心分别具有一个服务端,并分别对接一个或多个业务系统。作为示例,设中心1具有的服务端为服务端1,中心2具有的服务端为服务端2,中心3具有的服务端为服务端3;并设中心1对接两个业务系统,分别令为业务系统1和业务系统2,设中心2对接两个业务系统,分别令为业务系统3和业务系统4,设中心3对接两个业务系统,分别令为业务系统5和业务系统6。
进一步的,每一个业务系统分别连接一个数据库,并分别具有一个发布端和一个订阅端,其中发布端用于对业务系统中被订阅端订阅过的业务在更新时候的数据(令为订阅数据)从数据库中进行读取并发布,订阅端用于将接收到的订阅数据存入业务系统连接的数据库中。作为示例,设业务系统1连接数据库1,业务系统1具有的发布端和订阅端分别令为发布端1和订阅端1;设业务系统2连接数据库2,业务系统2具有的发布端和订阅端分别令为发布端2和订阅端2;设业务系统3连接数据库3,业务系统3具有的发布端和订阅端分别令为发布端3和订阅端3;设业务系统4连接数据库4,业务系统4具有的发布端和订阅端分别令为发布端4和订阅端4;设业务系统5连接数据库5,业务系统5具有的发布端和订阅端分别令为发布端5和订阅端5;设业务系统6连接数据库6,业务系统6具有的发布端和订阅端分别令为发布端6和订阅端6。
基于上述的多中心的架构,背景技术提供的数据同步方案可以通过下述例子进行说明。
设中心1的订阅端2订阅了中心1的业务系统1的某业务(设为业务A),同时中心2的订阅端3、中心3的订阅端5也都订阅了中心1的业务系统1的业务A;其中订阅业务的含义是,在被订阅的业务的数据有更新时,需要将更新的数据同步至各个订阅端所在的业务系统所连接的数据库中。那么,在业务A的数据有更新时,发布端1将对业务A的更新数据进行发布。其中,发布端1对更新数据进行发布的内容包括:发布端1将从数据库1中确定出业务A的更新数据并发送至本中心的服务端,即服务端1,以由服务端1基于本地的发布端-订阅端的映射关系、而将接收到的更新数据发送至订阅端2,订阅端2用于将接收到的更新数据存入数据库2中;发布端1还需要再次从数据库读取出业务A的更新数据并发送至中心2的服务端,即服务端2,以由服务端2基于本地预先配置的发布端-订阅端的映射关系、而将接收到的更新数据发送至订阅端3,订阅端3用于将接收到的更新数据存入数据库3中,同时发布端1还需要再一次地从数据库读取出业务的更新数据并发送至中心3的服务端,即服务端3,以由服务端3基于本地预先配置的发布端-订阅端的映射关系、而将接收到的更新数据发送至订阅端5,订阅端5用于将接收到的更新数据存入数据库5中。
显然,上述描述的背景技术的数据同步的方案在需要向多个中心同步数据时、需要发布端多次对数据库进行读取才能够进行数据同步,但是该过程中由于多次读取数据库的动作,极容易对数据库造成损耗。
为此,对于上述技术问题,本申请实施例提供一种数据同步方法。如图2所示,为本申请实施例提供的一种数据同步方法的示意图,该方法包括以下步骤:
步骤201,第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据。
其中,所述订阅数据是第一业务系统连接的第一数据库中的目标业务发生更新时、需要通过所述第一发布端进行数据同步的数据。
例如,第一中心的服务端可以为图1所示的三个中心中的任一个中心的服务端。作为示例,本申请实施例中设第一中心的服务端为中心1的服务端,即第一中心的服务端为服务端1。其中,设中心1对接的业务系统1中的业务A发生更新,那么业务A发生更新时的更新数据即为订阅数据,该订阅数据需要通过业务系统1的发布端1进行发布,因此发布端1可以从业务系统1连接的数据库1中找到业务A的更新数据并将其发送给服务端1。其中,第一业务系统可以为业务系统1,第一数据库可以为数据库1,目标业务可以为业务A,第一发布端可以为发布端1。
在本申请实施例中,在一中心的发布端有订阅数据需要进行发布时,尤其针对需要向异地中心进行发布的情况,本申请中并非让该发布端与异地中心的服务端进行连接后订阅数据的发布,而是首先让该发布端将订阅数据发送给了本地中心的服务端,以由本地中心的服务端进行后续的数据发布的工作。
在本申请的某些实施中,所述第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据之前,还包括:所述第一中心的服务端接收各订阅端的注册信息;所述注册信息包括订阅端所隶属的中心的中心信息;所述第一中心的服务端更新发布端与订阅端的映射关系,并将所述映射关系同步至其他各中心的服务端;所述映射关系用于确定对业务进行订阅的各订阅端。
在一中心的服务端接收到本地中心的发布端发送而来的订阅数据后,该中心的服务端将可以执行对订阅数据进行发布的工作。其中,本申请实施例中的中心的服务端之所以能够执行对订阅数据进行发布的工作,其原因在于,在该中心的服务端接收到本地中心的发布端发送而来的订阅数据之前,该中心的服务端接收到了各个订阅端的注册信息,该注册信息包括有注册的订阅端所隶属的中心的中心信息,并在接收到订阅端的注册信息后,该中心的服务端可将订阅端所订阅的业务与订阅端建立映射关系,从而在订阅端所订阅的业务发生更新时,可以通过业务所在的业务系统的发布端将发生更新的数据向各个订阅端进行发布;此外,在该中心的服务端建立好业务与订阅端之间的映射关系后,该中心的服务端还可将所建立的映射关系同步到该中心所在的多中心的架构中的其他各个中心,便于其他各个中心在接收到订阅文件时、通过查询映射关系而将订阅文件的数据发送给正确的订阅端。
比如,接着前文的例子,服务端1在接收到发布端1发送来的针对业务A的订阅数据后,服务端1可查询本地的发布端-订阅端的映射关系,如针对业务A,设服务端1先前接收到过本地中心的订阅端2、中心2的订阅端3和中心3的订阅端5的注册信息,那么服务端1通过查询发布端1在业务A下所对应的各订阅端,将包括有本地中心的订阅端2、中心2的订阅端3和中心3的订阅端5,那么服务端1将可以知道该如何对业务A的订阅数据进行发布了。
步骤202,所述第一中心的服务端若确定对所述目标业务进行订阅的各订阅端中包括隶属于第二中心的第二订阅端,则基于所述订阅数据构建订阅文件。
接着前述的例子,在服务端1通过查询本地的映射关系后,发现对业务A进行订阅的各订阅端中包括有非本中心的订阅端——中心2的订阅端3和中心3的订阅端5,那么本申请实施例中可以基于业务A的订阅数据构建订阅文件。
在本申请的某些实施中,所述第一中心的服务端若确定对所述目标业务进行订阅的各订阅端中包括隶属于所述第一中心的第一订阅端,则将所述订阅数据发送至所述第一订阅端。
接着前述的例子,在服务端1通过查询本地的映射关系后,发现对业务进行订阅的各订阅端中包括有本中心的订阅端——中心1的订阅端2,那么本申请实施例中可以基于将对业务A的订阅数据发送至订阅端2,如此实现了数据在本中心的相关业务系统中的同步。
步骤203,所述第一中心的服务端将所述订阅文件发送至所述第二中心的服务端;所述第二中心的服务端用于在对所述订阅文件进行解析后、将得到的所述订阅数据发送至所述第二订阅端,所述第二订阅端用于将所述订阅数据更新至第二业务系统连接的第二数据库中。
接着前述的例子,在服务端1确定对业务A进行订阅的各订阅端中包括中心2的订阅端3和中心3的订阅端5这两个异地订阅端时,可基于业务A的订阅数据构建订阅文件;在服务端1构建好业务A的订阅文件后,服务端1可以将构建好的业务A的订阅文件分别发送至中心2的服务端和中心3的服务端,即服务端1可将业务A的订阅文件分别向服务端2和服务端3发送一份;那么,比如在服务端2接收到服务端1发送而来的订阅文件时,服务端2将可以基于本地的发布端-订阅端的映射关系,查询到自己的订阅端3曾经向服务端1订阅过它(指服务端1)对接的业务系统1中的业务A,那么服务端2将可以将在完成对订阅文件的解析后,将解析得到的对业务A的订阅数据发送至订阅端3,进而在订阅端3接收到服务端2发送而来的对业务A的订阅数据时,订阅端3可以将业务A的订阅数据更新到自己对应的业务系统3所连接的数据库3中,同理,在服务端3接收到服务端1发送而来的订阅文件,服务端3将可以基于本地的发布端-订阅端的映射关系,查询到自己的订阅端5曾经向服务端1订阅过它(指服务端1)对接的业务系统1中的业务A,那么服务端3将可以将在完成对订阅文件的解析后,将解析得到的对业务A的订阅数据发送至订阅端5,进而在订阅端5接收到服务端3发送而来的对业务A的订阅数据时,订阅端5可以将业务A的订阅数据更新到自己对应的业务系统5所连接的数据库5中。
该方式中,通过中心的服务端对发布端发送来的订阅数据进行按需发布的方式,可以避免背景技术中发布端需要多次读取数据库而对数据库造成损耗的问题。
在本申请的某些实施中,所述第一中心的服务端接收中心变更指令;所述中心变更指令用于指示将隶属于第三中心的发布端和订阅端更新为隶属于第四中心;所述第一中心的服务端根据所述中心变更指令,更新所述映射关系。
在多中心的架构进行数据同步时,难免会发生当中的某个/些中心的服务端故障、而暂时无法正常提供服务的情况。对此问题,本申请实施例可以通过以下描述的例子的技术予以解决:
比如,前述例子中,对中心1对接的业务系统1中的业务A进行订阅的订阅端包括有中心2的订阅端3和中心3的订阅端5,那么假设中心2的服务端,即服务端2因为故障而无法提供服务时,此时中心1的服务端,即服务端1可以接收到中心变更指令时,比如中心变更指令可以为将订阅端3对业务A进行订阅的映射关系更新到隶属于中心3,则服务端1可以将本地的映射关系中的经过中心2而指向订阅端3的这一关系更新为经过中心3而指向订阅端3,并将该更新后的映射关系同步到中心1所在的多中心架构中的其他各中心的服务端,包括中心3的服务端3;如此,在服务端1将基于业务A的订阅数据而构建的订阅文件向中心2的订阅端3和中心3的订阅端5进行发布的过程中,服务端1可直接将对业务A的订阅文件一并发送至服务端3;在服务端3接收到业务A的订阅文件后,服务端3通过查询本地的发布端-订阅端的映射关系,确定对业务A进行订阅的订阅端包括本地中心的订阅端5和中心2的订阅端3,因此,服务端3在对业务A的订阅文件进行解析得到订阅数据后,服务端3可以一方面可以将对业务A的订阅数据发送给本地中心的订阅端5,另一方面可以将对业务A的订阅数据发送给中心2的订阅端3。
在本申请的某些实施中,所述第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据之前,还包括:所述第一中心的服务端将本地数据时间戳发送至所述第一发布端;所述第一发布端用于基于所述本地数据时间戳从所述第一数据库中获取所述订阅数据。
关于一业务对应的数据,在相邻两次被执行数据同步操作时,一方面既不希望上一次已经被同步过的数据中的部分甚至全部的数据又再一次在本次同步过程中因为被重新发送一次所带来的资源浪费,另一方面又不希望因为漏发本次需要发送的数据而造成的数据丢失,即为了保证数据在相邻两次同步过程中的轻量性与正确性,本申请实施例中的任一中心的服务端可以在每次数据同步之后对本次最后一条同步数据进行标记,即得到本地数据时间戳,从而在该中心的发布端下次需要进行数据同步时,将可以从中心的服务端处获取到的业务对应的本地数据时间戳,从而该发布端将可以从数据库中按照本地数据时间戳、而取出在此数据时间戳之后的数据,并作为待发布的数据,即订阅数据。
在本申请的某些实施中,所述第一中心的服务端接收新增中心指令;所述新增中心指令中包括新增中心的配置信息;所述第一中心的服务端基于所述新增中心的配置信息,与所述新增中心完成中心间配置。
基于图1所示的多中心的架构,其中包括有中心1、中心2和中心3;但是随着业务的推广、加深,不断地在当前架构中扩展新的中心是一种趋势。目前对架构中的中心进行扩展时,对于新增加的中心,需要在该新的中心以及会与该新的中心有数据同步的中心中均进行参数的配置,显然该工作量将随着中心数目的增多指数性增长。为此,本申请实施例可以通过下文所述的例子对该技术问题进行克服:
基于前文的例子,当需要在图1所示的多中心的架构中增加中心4,那么对架构进行配置、维护的人员可以向图1所述的多中心的架构中的任一中心的服务端(如设为中心1的服务端1)发送新增中心指令,该新增中心指令中包括指示需要对中心4进行配置的信息,那么在服务端1接收到新增中心指令时,服务端1可以将自己本地存储的发布端-订阅端的映射关系复制一份到中心4的服务端4中,从而当后续中心4需要与其他各中心有数据交互的必要时,则可以再次在服务端4的本地增加相关的发布端-订阅端的映射关系并向多中心架构中的其他各中心同步所添加的映射关系。该方式中在简单的参数配置下,可实现同步数据中心的横向扩展。
在本申请的某些实施中,所述第一中心的服务端将所述订阅文件发送至所述第二中心的服务端之后,还包括:所述第一中心的服务端在设定时长内若未接收到所述第二中心的服务端发送的成功应答消息,则进行重试。
例如,在本申请实施例中,多中心的架构中的任一中心的服务端可以采用多集群部署,集群内部包括多个处理单元,各处理单元互不影响且可相互替代,从而在一个处理单元出现故障,则集群内其他处理单元可接管故障处理单元的数据处理任务。进一步的,多中心的架构中的任一中心的服务端具体又可以包括集群处理模块、落地传输模块和落地接收模块。其中,可以结合前文例子对该3个模块的功能进行阐述。
比如前文例子中与中心1对接的业务系统1中的业务A发生更新时,业务系统1对应的发布端1可以向服务端1的集群处理模块获取本地数据时间戳,从而发布端1可以基于所获取的本地数据时间戳而从业务系统1连接的数据库1中获取业务A的更新数据,更新数据也即订阅数据;在发布端1获取到对业务A的订阅数据后,发布端1可将业务A的订阅数据发送给服务端1的集群处理模块,以由服务端1的集群处理模块通过本地维护的发布端-订阅端的映射关系,而将订阅数据进行相应发送。其中,对于前文例子中中心1的订阅端2订阅了业务A的情形,服务端1的集群处理模块可以将对业务A的订阅数据直接发送给订阅端2,而对于前文例子中中心2的订阅端3和中心3的订阅端5也都订阅了业务A的情形,服务端1的集群处理模块可以基于业务A的订阅数据构建定业务A的订阅文件,并同时调用服务端1的落地传输模块,以希望所调用的落地传输模块将构建好的业务A的订阅文件发送至中心2的服务端的落地接收模块和中心3的落地接收模块。其中,若服务端1的集群处理模块对服务端1的落地传输模块调用失败,且重试多次后仍失败,则报错退出,由超时重发机制再次调用服务端1的落地传输模块重试。若服务端1的集群处理模块可成功调用服务端1的落地传输模块,则由服务端1的落地传输模块将业务A的订阅文件分别向中心2的服务端的落地传输模块和中心3的落地传输模块进行传输并接收该两个落地传输模块的应答消息,若设定时长内服务端1的落地传输模块未接收到对端的成功应答消息,则报警告错,并重试。假设服务端1的落地传输模块将业务A的订阅文件成功发送到中心2的服务端2的落地接收模块,则在中心2的服务端的落地接收模块接收到对业务A的订阅文件后,读取该订阅文件并按预先配置的对订阅文件进行解析的规则执行过滤、形变、压缩、加密操作,并在完成该一系列操作后得到对业务A的订阅数据,随后中心2的服务端的落地接搜模块可以调用中心2的服务端的集群处理模块、以将得到的对业务A的订阅数据发送至中心2的订阅端3。
基于同样的构思,本申请实施例提供一种数据同步装置,如图3所示,为本申请实施例提供的一种数据同步装置的示意图,该装置包括接收单元301、订阅文件构建单元302和发送单元303;
接收单元301,用于接收隶属于第一中心的第一发布端发送的订阅数据;所述订阅数据是第一业务系统连接的第一数据库中的目标业务发生更新时、需要通过所述第一发布端进行数据同步的数据;
订阅文件构建单元302,用于若确定对所述目标业务进行订阅的各订阅端中包括隶属于第二中心的第二订阅端,则基于所述订阅数据构建订阅文件;
发送单元303,用于将所述订阅文件发送至所述第二中心的服务端;所述第二中心的服务端用于在对所述订阅文件进行解析后、将得到的所述订阅数据发送至所述第二订阅端,所述第二订阅端用于将所述订阅数据更新至第二业务系统连接的第二数据库中。
进一步的,对于该装置,发送单元303,还用于:若确定对所述目标业务进行订阅的各订阅端中包括隶属于所述第一中心的第一订阅端,则将所述订阅数据发送至所述第一订阅端。
进一步的,对于该装置,还包括映射关系的更新与同步单元304;接收单元301,还用于接收各订阅端的注册信息;所述注册信息包括订阅端所隶属的中心的中心信息;映射关系的更新与同步单元304,用于更新发布端与订阅端的映射关系,并将所述映射关系同步至其他各中心的服务端;所述映射关系用于确定对业务进行订阅的各订阅端。
进一步的,对于该装置,接收单元301,还用于接收中心变更指令;所述中心变更指令用于指示将隶属于第三中心的发布端和订阅端更新为隶属于第四中心;映射关系的更新与同步单元304,用于根据所述中心变更指令,更新所述映射关系。
进一步的,对于该装置,发送单元303,还用于:将本地数据时间戳发送至所述第一发布端;所述第一发布端用于基于所述本地数据时间戳从所述第一数据库中获取所述订阅数据。
进一步的,对于该装置,接收单元301,还用于:接收新增中心指令;所述新增中心指令中包括新增中心的配置信息;基于所述新增中心的配置信息,与所述新增中心完成中心间配置。
进一步的,对于该装置,还包括重试单元305;重试单元305,用于:在设定时长内若未接收到所述第二中心的服务端发送的成功应答消息,则进行重试。
本申请实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器,可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储数据同步方法的程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行数据同步方法。
如图4所示,为本申请实施例提供的一种计算设备的示意图,该计算设备包括:
处理器401、存储器402、收发器403、总线接口404;其中,处理器401、存储器402与收发器403之间通过总线405连接;
所述处理器401,用于读取所述存储器402中的程序,执行上述数据同步方法;
处理器401可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
所述存储器402,用于存储一个或多个可执行程序,可以存储所述处理器401在执行操作时所使用的数据。
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器402可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器402也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器402还可以包括上述种类的存储器的组合。
存储器402存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
总线405可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
总线接口404可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为WLAN接口。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行数据同步方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据;所述订阅数据是第一业务系统连接的第一数据库中的目标业务发生更新时、需要通过所述第一发布端进行数据同步的数据;
所述第一中心的服务端若确定对所述目标业务进行订阅的各订阅端中包括隶属于第二中心的第二订阅端,则基于所述订阅数据构建订阅文件;
所述第一中心的服务端将所述订阅文件发送至所述第二中心的服务端;所述第二中心的服务端用于在对所述订阅文件进行解析后、将得到的所述订阅数据发送至所述第二订阅端,所述第二订阅端用于将所述订阅数据更新至第二业务系统连接的第二数据库中。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一中心的服务端若确定对所述目标业务进行订阅的各订阅端中包括隶属于所述第一中心的第一订阅端,则将所述订阅数据发送至所述第一订阅端。
3.如权利要求1所述的方法,其特征在于,所述第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据之前,还包括:
所述第一中心的服务端接收各订阅端的注册信息;所述注册信息包括订阅端所隶属的中心的中心信息;
所述第一中心的服务端更新发布端与订阅端的映射关系,并将所述映射关系同步至其他各中心的服务端;所述映射关系用于确定对业务进行订阅的各订阅端。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一中心的服务端接收中心变更指令;所述中心变更指令用于指示将隶属于第三中心的发布端和订阅端更新为隶属于第四中心;
所述第一中心的服务端根据所述中心变更指令,更新所述映射关系。
5.如权利要求1所述的方法,其特征在于,
所述第一中心的服务端接收隶属于所述第一中心的第一发布端发送的订阅数据之前,还包括:
所述第一中心的服务端将本地数据时间戳发送至所述第一发布端;所述第一发布端用于基于所述本地数据时间戳从所述第一数据库中获取所述订阅数据。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一中心的服务端接收新增中心指令;所述新增中心指令中包括新增中心的配置信息;
所述第一中心的服务端基于所述新增中心的配置信息,与所述新增中心完成中心间配置。
7.如权利要求1所述的方法,其特征在于,
所述第一中心的服务端将所述订阅文件发送至所述第二中心的服务端之后,还包括:
所述第一中心的服务端在设定时长内若未接收到所述第二中心的服务端发送的成功应答消息,则进行重试。
8.一种数据同步装置,其特征在于,包括:
接收单元,用于接收隶属于第一中心的第一发布端发送的订阅数据;所述订阅数据是第一业务系统连接的第一数据库中的目标业务发生更新时、需要通过所述第一发布端进行数据同步的数据;
订阅文件构建单元,用于若确定对所述目标业务进行订阅的各订阅端中包括隶属于第二中心的第二订阅端,则基于所述订阅数据构建订阅文件;
发送单元,用于将所述订阅文件发送至所述第二中心的服务端;所述第二中心的服务端用于在对所述订阅文件进行解析后、将得到的所述订阅数据发送至所述第二订阅端,所述第二订阅端用于将所述订阅数据更新至第二业务系统连接的第二数据库中。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111356910.XA CN114090687A (zh) | 2021-11-16 | 2021-11-16 | 一种数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111356910.XA CN114090687A (zh) | 2021-11-16 | 2021-11-16 | 一种数据同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090687A true CN114090687A (zh) | 2022-02-25 |
Family
ID=80301047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111356910.XA Pending CN114090687A (zh) | 2021-11-16 | 2021-11-16 | 一种数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090687A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208899A (zh) * | 2022-06-29 | 2022-10-18 | 安阳师范学院 | 一种改进的p2p海量科学数据同步方法 |
-
2021
- 2021-11-16 CN CN202111356910.XA patent/CN114090687A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208899A (zh) * | 2022-06-29 | 2022-10-18 | 安阳师范学院 | 一种改进的p2p海量科学数据同步方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
CN111277639B (zh) | 一种保持数据一致性的方法和装置 | |
CN111143382B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN109451032B (zh) | 一种消息传递系统 | |
EP2948875A1 (en) | Method and system for using a recursive event listener on a node in hierarchical data structure | |
CN112583931A (zh) | 消息处理方法、消息中间件、电子设备和存储介质 | |
CN112417042A (zh) | 一种处理业务请求的方法和装置 | |
CN112416969A (zh) | 分布式数据库中的并行任务调度系统 | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN105656643B (zh) | 一种基于网络配置协议进行兼容管理的方法及设备 | |
CN114090687A (zh) | 一种数据同步方法及装置 | |
CN111510480A (zh) | 一种请求发送方法、装置以及第一服务器 | |
CN105447000A (zh) | 一种事务消息的传输方法和设备 | |
CN111984723A (zh) | 数据同步方法、装置及终端设备 | |
CN112711466B (zh) | 悬挂事务巡检方法和装置、电子设备和存储介质 | |
CN114528095A (zh) | 集群数据的处理方法、装置、电子设备和存储介质 | |
CN114885020A (zh) | 数据传输系统以及方法 | |
CN114911171A (zh) | 一种设备控制的方法和装置 | |
CN110661857B (zh) | 一种数据同步方法和装置 | |
CN112434111A (zh) | 基础数据同步方法、装置、设备及存储介质 | |
CN105141707A (zh) | 一种地址信息传输方法及装置 | |
CN110935168A (zh) | 用于全球同服架构的分布式id生成方法、装置及设备 | |
CN104580512A (zh) | 数据处理方法和装置,及分布式文件系统 | |
CN115314512B (zh) | 一种海量终端数据同步方法及系统 | |
CN112559087B (zh) | 信息生成方法、装置、电子设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |