1.本技术涉及通信技术领域,尤其涉及一种数据同步方法及装置。
背景技术:
2.现有路由系统部署控制面软件时,可以采用一主一备冗余方式部署。通过部署一个主用程序和一个备用程序,能够对路由系统进行故障保护。其中,备用程序作为主程序的冗余备份存在,主程序直接向备用程序同步数据,以配合备用程序完成上线。当主程序发生故障时,备用程序接替主程序的工作,以避免或减少业务受损,保证路由系统的正常运行。但是主程序频繁向备用程序同步数据需要占用较多的资源,因此会影响主程序自身的业务处理性能,导致主程序性能降低。
技术实现要素:
3.本技术提供一种数据同步方法及装置,有助于降低数据同步过程中对性能的影响。
4.第一方面,提供一种数据同步方法,应用于第一数据服务模块,所述方法包括:接收来自第二业务模块的第一请求,所述第一请求用于请求同步第一业务模块的业务数据;获取所述第一业务模块的业务数据;向所述第二业务模块发送所述第一业务模块的业务数据。
5.在该方法中,第一数据服务模块接收到来自第二业务模块的请求,获取第一业务模块的业务数据并发送给所述第二业务模块,能够在基本不占用所述第一业务模块的资源的同时,实现所述第二业务模块与所述第一业务模块的数据同步,因此能够避免或降低数据同步过程对性能的影响,保证所述第一业务模块的性能。在所述第一业务模块为主业务模块时,所述第二业务模块在与所述第一业务模块同步数据后,可以作为所述第一业务模块的备份,在所述第一业务模块故障后接替所述第一业务模块,能够实现业务处理的连续性。
6.在一种可能的设计中,所述第一业务模块为主业务模块,所述第二业务模块为备用业务模块。
7.在一种可能的设计中,所述方法还包括:接收来自第三业务模块的第二请求,所述第二请求用于请求同步所述第一业务模块的业务数据;向所述第三业务模块发送所述第一业务模块的业务数据。
8.在该方法中,所述第一数据服务模块可基于多个业务模块的请求,比如第二业务模块和第三业务模块发送的请求,为多个业务模块同步所述第一业务模块的业务数据,因此,能够为所述第一业务模块部署多个备用业务模块,进而实现多点故障保护,提高容错率和故障保护性能。
9.在一种可能的设计中,所述第三业务模块为所述主业务模块的备用业务模块。
10.在一种可能的设计中,所述第二业务模块在所述第一业务模块故障后切换为主业
务模块,所述第一业务模块由故障恢复为正常,所述方法还包括:接收来自所述第一业务模块的第三请求,所述第三请求用于请求同步所述第二业务模块的业务数据;获取所述第二业务模块的业务数据;向所述第一业务模块发送所述第二业务模块的业务数据。
11.在该方法中,当所述第一业务模块发生故障时,所述第二业务模块能够切换为主业务模块,接替所述第一业务模块处理业务,因此能够保证业务处理的连续性,减少故障造成的业务受损。所述第二业务模块切换为主业务模块后,所述第一业务模块故障消除后,还可以通过与所述第二业务模块同步数据,继续提供业务处理的服务。
12.在一种可能的设计中,所述获取所述第一业务模块的业务数据之前,所述方法还包括:获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业务数据的标识。其中,所述第一业务数据的标识可以是版本号或者序列号等与获取第一业务数据的时刻相对应的标识。
13.在该方法中,所述第一数据服务模块通过存储所述第一业务数据及其标识,能够根据标识快速查找到所述第一业务数据,能够提高数据处理速度。
14.在一种可能的设计中,所述获取所述第一业务模块的业务数据之前,所述方法还包括:获取第二业务数据和所述第二业务数据的标识,所述第二业务数据的标识用于表示获取第二业务数据的顺序;存储所述第二业务数据和所述第二业务数据的标识;获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据晚于所述第二业务数据被获取,所述第一业务数据和所述第二业务数据均为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业务数据的标识。其中,所述第一业务数据的标识和所述第二业务数据的标识可用来表示所述第一业务数据晚于第二业务数据被获取,所述第一业务数据的标识和所述第二业务数据的标识之间的大小关系可根据需要进行设置。
15.在该方法中,所述第二业务模块可以是已存储的第一业务模块的历史业务数据,所述第一业务数据可以是已存储的第一业务模块的最新的业务数据,所述第一数据服务模块能够根据业务数据所对应的标识进行相应的处理,提高数据处理效率。
16.在一种可能的设计中,所述获取所述第一业务模块的业务数据包括:基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。
17.在一种可能的设计中,所述获取所述第一业务模块的业务数据包括:基于所述第一业务模块的业务数据包括的关键词,获得包括相同关键词的业务数据,所述包括相同关键词的业务数据包括所述第一业务数据;基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。
18.在该方法中,第一数据服务模块根据业务数据的关键词,能够对业务数据进行筛选更新等处理,保留同一关键词对应的最新版本的业务数据即可,因此能够避免数据冗余并节省存储空间。
19.在一种可能的设计中,所述第一业务模块与所述第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于同一个对象中;或者所述第一业务模块与所述第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于不同的对
象中。
20.在一种可能的设计中,所述第一业务模块与所述第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于同一个对象中;或者所述第一业务模块与所述第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于不同的对象中。
21.在一种可能的设计中,所述对象包括应用进程、容器、虚拟机、服务器或电子设备。
22.第二方面,提供一种数据同步装置,包括用于支持实现第一方面或第一方面任一可能的设计包括的步骤对应功能的单元。
23.第三方面,本技术提供一种数据同步装置,所述数据同步装置包括存储器和一个或多个处理器;其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述数据同步装置执行上述第一方面或第一方面的任一可能的设计所描述的方法。
24.第四方面,本技术实施例提供一种数据同步系统,包括:第一业务模块、第二业务模块、以及上述第二方面或第三方面提供的数据同步装置。
25.在一种可能的设计中,所述数据同步系统还包括第三业务模块。
26.第五方面,本技术实施例提供一种芯片,所述芯片与电子设备中的存储器耦合,使得所述芯片在运行时调用所述存储器中存储的计算机程序,实现上述第一方面或第一方面的任一可能的设计所描述的方法。
27.第六方面,本技术实施例提供一种计算机存储介质,该计算机存储介质存储有计算机程序,当所述计算机程序在电子设备上运行时,使得电子设备执行上述第一方面或第一方面的任一可能的设计所描述的方法。
28.第七方面,本技术实施例提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行第一方面或第一方面的任一可能的设计所描述的方法。
29.上述第二方面到第七方面的有益效果,请参见上述第一方面的有益效果的描述,这里不再重复赘述。
附图说明
30.图1为本技术实施例提供的一种路由设备采用一主一备方式部署控制面软件的示意图;
31.图2为本技术实施例提供的一种数据同步系统的架构示意图;
32.图3为本技术实施例提供的一种数据同步方法的示意图;
33.图4为本技术实施例提供的一种dss的亲和部署方式示意图;
34.图5为本技术实施例提供的一种dss的独立部署方式示意图;
35.图6为本技术实施例提供的一种dss的多对一部署方式示意图;
36.图7为本技术实施例提供的另一种dss的多对一部署方式;
37.图8为本技术实施例提供的一种数据存储方法的示意图;
38.图9为本技术实施例提供的一种数据服务模块存储业务数据的流程示意图;
39.图10为本技术实施例提供的一种数据同步方法的示意图;
40.图11为本技术实施例提供的一种数据同步方法的流程示意图;
41.图12为本技术实施例提供的一种数据同步方法的流程示意图;
42.图13为本技术实施例提供的一种数据同步装置的示意图;
43.图14为本技术实施例提供的一种数据同步装置的示意图。
具体实施方式
44.为了使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例作进一步地详细描述。其中,在本技术实施例的描述中,以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
45.为了便于理解,示例性的给出了与本技术相关概念的说明以供参考,如下所示:
46.1)、路由设备,具有路由管理功能的网络设备,例如具有接收和分发路由、选路等功能的网络设备。示例性的,所述路由设备可以为路由器,或者所述路由设备包含多个逻辑功能单元,本技术对此不作限定。该路由设备上用来实现路由功能的系统可称为路由系统。
47.路由协议中,路由设备包括控制平面和转发面(也称数据面)。其中,控制平面负责控制和管理路由协议的运行;转发面负责路由数据的处理和转发等。路由系统中部署路由设备的控制面软件(在本技术实施例中也称程序或应用程序(application,app))时,路由协议控制面软件的高可靠性、高可用性是路由设备必备的关键属性。
48.2)不间断路由(non-stop routing,nsr):在路由系统中,通过协议备份机制,实现主备倒换时控制面和转发面工作均不中断,能够通过内部机制来保证主备控制面的路由协议状态和邻居关系状态一致,且不需要邻居支持。
49.不间断转发(non-stop forwarding,nsf):在路由系统中,通过路由协议的平滑重启(graceful restart,gr)更新机制,支持系统中主备倒换时,转发业务不中断,能够在路由处理器发生中断时,保持分组的正常传输,从而降低中断对网络的影响。
50.通常路由设备中部署控制面软件时,通常采用单主控部署方式或一主一备部署方式。在单主控部署方式中,路由设备控制面仅部署一个主程序,用于执行路由管理相关功能,该主程序发生故障时,需要通过重启的方式恢复工作,因此很容易导致业务受损,且会影响路由设备的正常运行。
51.图1为路由设备采用一主一备方式部署控制面软件的示意图。如图1所示,在一主一备部署方式中,路由设备控制面部署包括一个主程序及该主程序的一个备用程序的路由系统,所述路由系统中,所述备用程序后台执行与所述主程序相同的业务处理,在所述主程序故障后,依据nsr或nsf方式,所述备用程序接替所述主程序工作,从而实现业务的不中断或短暂中断,避免或减少业务受损。这种部署方式仅支持单点故障保护的可靠性,即仅在主程序发生故障时,能维持路由系统正常运行。但是在主程序和备用程序同时发生故障时,仍然可能导致业务受损,影响路由系统的正常运行。因此,该方式不支持多点故障保护,对路由系统的故障保护能力仍然较弱。
52.基于上述问题,本技术实施例提供一种数据同步方法。该方法中,第一数据服务模块可根据作为备份的第二业务模块的用于进行数据同步的请求,发送第一业务模块的业务
数据给第二业务模块,以便在作为主用的第一业务模块故障后,第二业务模块再获取第一业务模块故障前的业务数据,在不降低性能的情况下,保证业务的连续性。
53.在本技术一些实施例中,第一数据服务模块和第一业务模块相对应,第一数据服务模块和第一业务模块部署在嵌入式路由器或交换机,或者部署在云化或虚拟化的路由/交换系统。
54.在本技术一些实施例中,作为一种可选的实施方式,在部署控制面软件过程中,初始时部署多个相同的初始化应用程序,其中,可将多个初始化应用程序中先启动的应用程序作为主程序,对外提供业务服务,将其它备用程序作为所述主程序的备用程序。在所述主用程序运行过程中,也可以继续为所述主用程序部署新的备用程序。作为另一种可选的实施方式,在部署控制面软件过程中,先部署用于对外提供业务服务的主程序,然后可以在所述主程序运行过程中为所述主程序依次部署多个备用程序。上述在主程序运行过程中,为所述主程序部署备用程序时,所述主程序已产生一部分业务数据,因此需将这部分数据同步给新部署的备用程序,来保证所述备用程序与所述主程序的业务数据保持一致。所述备用程序获取到这部分数据后完成与主程序的同步,才能上线作为所述主程序的备用程序,进而在所述主程序故障时接替所述主程序处理业务。
55.在本技术一些实施例中,所述主程序将业务数据同步给备用程序时,可采用如下任一种实施方式进行数据同步:
56.1)主程序直接给多个备用程序同步业务数据。
57.多个备用程序中,各备用程序上线时,主程序直接将业务数据同步给所述备用程序,同步完成后,备用程序完成上线,并作为所述主程序的备用程序,后续执行与所述主程序完全相同的操作,从而保证与所述主程序的一致性。
58.2)主程序通过数据库为多个备用程序同步业务数据。
59.主程序处理业务过程中将生成的业务数据存储到数据库,数据库将所述主程序的业务数据存储多个副本,从而提升数据可用性。多个备用程序中,各备用程序上线时,从所述数据库中读取副本数据,进行数据同步后完成上线,并作为所述主程序的备用程序,后续执行与所述主程序完全相同的操作,从而保证与所述主程序的一致性。
60.本技术实施例还提供一种数据同步方法,用于解决备用程序上线时,主程序给备用程序同步业务数据导致的主程序性能下降的问题。
61.本技术实施例中的主程序可以是提供业务处理的作为主用的业务模块。本技术实施例中的备用程序可以是提供业务处理的作为备用的业务模块或提供业务处理的作为备份的业务模块。
62.为了便于理解本技术提供的数据同步方法,首先对所述数据同步方法的应用场景进行说明。
63.图2示出一种本技术提供的数据同步系统的架构示意图。如图2所示,该系统至少包括主业务模块201、所述主业务模块的多个备用业务模块,比如图2所示的备用业务模块202和备用业务模块203,以及数据同步服务(data synchronization service,dss)模块204,所述数据同步服务模块至少包括主数据服务模块205。其中,所述主业务模块用于对外提供业务服务,所述数据同步服务模块用于为各业务模块提供业务数据存储功能。所述数据同步服务模块中的所述主数据服务模块用于存储所述主业务模块生成的业务数据。
64.所述数据同步服务模块还可以包括与所述多个备用业务模块分别对应的多个数据服务模块,比如图2所示的与备用业务模块202对应的数据服务模块206和与备用业务模块203对应的数据服务模块207。所述多个数据服务模块分别用于存储所述多个备用业务模块的业务数据。业务模块与数据服务模块对应。每个数据服务模块用于存储与其对应的业务模块的业务数据。
65.本技术实施例中,主业务模块对应的主数据服务模块具有对外的数据发布能力和订阅能力中的一种或多种,所述主业务模块将生成的业务数据写入对应的主数据服务模块后,其它备用业务模块可以从所述主数据服务模块中获取业务数据,从而实现业务数据从主业务模块同步到所述备用业务模块上。具体的,所述主业务模块处理业务过程中将生成的业务数据发送到所述主数据服务模块,所述主数据服务模块存储所述业务数据。所述多个备用业务模块中各备用业务模块上线时,从所述主数据服务模块获取业务数据,完成与所述主业务模块的数据同步后实现上线。各备用业务模块上线后作为所述主业务模块的备用业务模块,后台同步执行与所述主业务模块相同的业务处理流程。当所述主业务模块故障或者所述主数据服务模块故障时,所述主数据服务模块停止提供对外数据发布和订阅。所述数据同步系统基于各备用业务模块的服务优先级,选择其中一个备用业务模块切换为新的主业务模块,接替原主业务模块的业务处理。新主业务模块对应的数据服务模块随之更新为新的主数据服务模块,能够对外提供数据发布/订阅,其它的备用业务模块可以从所述新的主数据服务模块中获取业务数据。
66.在本技术一些实施例中,所述主业务模块与所述主数据服务模块对应,且所述主业务模块与所述主数据服务模块部署于同一个对象中;或者,所述主业务模块与所述主数据服务模块对应,且所述主业务模块与所述主数据服务模块部署于不同的对象中。在本技术一些实施例中,所述主业务模块与所述主数据服务模块对应,且所述主数据服务模块与至少一个备用业务模块对应的数据服务模块部署于同一个对象中;或者,所述主业务模块与所述主数据服务模块对应,且所述主数据服务模块与至少一个备用业务模块对应的数据服务模块部署于不同的对象中。在本技术一些实施例中,上述对象可以为应用进程、容器、虚拟机、服务器或电子设备等,或者其它能够部署所述业务模块或数据服务模块的对象。
67.应理解,图2是一种示例性说明,并不对数据同步系统中所包括的备用业务模块和数据服务模块的数量进行具体限定。以上各个业务模块是按照模块功能进行逻辑划分的,实际上各个业务模块的功能是由其所在的设备实现的。注意的是,不同的业务模块可以运行在不同的设备中,或者多个业务模块运行在同一个设备中,本技术对此不作限定。例如,以上各个业务模块可以分别单独运行在一个通用的服务器上,也可以分别运行在不同的服务器上。以上各个数据服务模块同理。
68.下面结合附图,对本技术提供的数据同步方法进行说明。本技术实施例提供的方法可以应用于如上图2所示的数据同步系统中。
69.本技术实施例提供的数据同步方法中,通过主业务模块对应的主数据服务模块,为其它备用业务模块同步所述主业务模块的业务数据,其中,不同业务模块分别对应一个用于存储所述业务模块的业务数据的数据服务模块。因此,各业务模块在提供业务服务过程中,需将生成的业务数据实时发送到对应的数据服务模块,所述数据服务模块接收到所述业务数据后进行存储,以便于后续同步业务数据。
70.下面以第一业务模块和对应的第一数据服务模块为例进行具体说明。
71.本技术实施例中,用于存储主业务模块的业务数据的数据服务模块为主数据服务模块。所述第一业务模块为主业务模块时,用于存储所述第一业务模块的业务数据的数据服务模块作为主数据服务模块,具有对外数据发布能力,并用于向新上线的所述第一业务模块的备用业务模块同步业务数据。
72.所述第一业务模块在处理业务过程中,将生成的业务数据实时发送给所述第一数据服务模块,所述第一数据服务模块存储接收到的业务数据。
73.作为一种可选的实施方式,所述第一业务模块将生成的业务数据发送到所述第一数据服务模块,所述第一数据服务模块接收到所述业务数据时,根据接收业务数据的时间先后顺序存储所述业务数据,后续可根据业务数据的存储顺序或存储时刻比较业务数据的新旧版本。
74.作为另一种可选的实施方式,所述第一业务模块将生成的业务数据发送到所述第一数据服务模块,所述第一数据服务模块获取所述第一业务模块的第一业务数据,及所述第一业务数据的标识,并存储所述第一业务数据和所述第一业务数据的标识,其中,所述第一业务数据的标识用于表示获取第一业务数据的顺序。
75.具体的,所述第一数据服务模块接收到所述第一业务模块发送的所述第一业务数据时,按照接收业务数据的时间先后顺序,生成所述第一业务数据的标识,并存储所述第一业务数据和所述第一业务数据的标识。后续可根据业务数据的标识比较业务数据的新旧版本。
76.可选的,所述第一数据服务模块存储所述第一业务数据后,所述第一业务数据切换为已存储的第二业务数据。因此,本技术实施例中,可以认为所述第二业务数据为所述第一数据服务模块先接收并存储的业务数据,即历史业务数据,所述第一业务数据为所述第一数据服务模块在获取所述第二业务数据之后新接收到的业务数据。
77.在本技术一些实施例中,所述标识可以为版本号。所述第一数据服务模块按照版本号从小到大的顺序,生成所述第一业务数据对应的版本号,作为所述第一业务数据的标识。
78.在本技术一些实施例中,所述第一数据服务模块采用关键字/关键词-取值(key-value)的格式存储业务数据。所述关键字/关键词为标识各个记录或存储的特定数据的信息,用于唯一标识一个数据对象,在本技术实施例中,所述数据对象即为所述第一业务模块的业务数据;所述取值为所述关键字/关键词标识的业务数据的具体内容。所述第一数据服务模块存储接收到的所述第一业务数据时,先确定所述第一业务数据对应的关键字,若确定本地已存储对应所述关键字的第二业务数据,则将所述第二业务数据替换为所述第一业务数据;否则,直接将所述第一业务数据存储到本地。
79.上述方式中,所述第一数据服务模块根据关键字,能够确定新接收到的第一业务数据是对某一个已存储业务数据进行更新的业务数据,还是一个新的业务数据,因此,所述第一数据服务模块能够对存储的业务数据进行一定的合并更新处理,对于相同属性的业务数据,只存储业务数据的最新版本即可,进而避免数据冗余并节省存储空间。
80.本技术实施例中,主业务模块对应的数据服务模块为主数据服务模块,备用业务模块对应的数据服务模块为非主数据服务模块(本实施例中也可以称为备数据服务模块)。
各数据服务模块均采用与上述相同的方法接收并存储对应的业务模块的业务数据。
81.在本技术一些实施例中,所述数据模块为具备数据收发和处理能力的装置或设备,例如可以为服务器、电子设备、数据库等。
82.图3为本技术实施例提供的一种数据同步方法的示意图。如图3所示,该方法包括:
83.s301:主数据服务模块在接收到来自第二业务模块的第一请求时,获取所述第一业务模块的业务数据,其中,所述第一请求用于请求同步第一业务模块的业务数据。
84.其中,所述第一业务模块为主业务模块,所述主数据服务模块为所述第一业务模块对应的所述第一数据服务模块,所述第二业务模块为所述第一业务模块(主业务模块)的备用业务模块。
85.本技术实施例中,所述第二业务模块为新上线的备用业务模块,所述第二业务模块获取所述第一业务模块的业务数据来完成与所述第一业务模块的数据同步,数据同步完成后所述第二业务模块上线,作为所述第一业务模块的备用业务模块运行。
86.本技术实施例中,所述第二业务模块上线后才能实现备用业务模块功能,在所述第一业务模块故障时,切换为主业务模块,接替所述第一业务模块处理业务。并且,所述第二业务模块上线后独立运行,与所述第一业务模块同步执行相同的业务处理流程,因此上线后无需再从所述第一业务模块同步业务数据。
87.本技术实施例中,所述主数据服务模块向所述第二业务模块发送所述第一业务模块的业务数据时,需将本地存储的所述第一业务模块的业务数据发送到所述第二业务模块。同时,在主数据服务模块向所述第二业务模块同步本地存储的业务数据期间,所述第一业务模块在正常运行,运行期间业务产生的业务数据也在实时发送到所述主数据服务模块,因此所述主数据服务模块需同时将新接收到的第一业务数据发送到所述第二业务模块。鉴于所述主数据服务模块接收到的实时业务数据可能会对本地已存储的历史业务数据中的业务数据进行更新,因此,本技术实施例中,所述主数据服务模块向所述第二业务模块发送业务数据时,可以将接收到的第一业务数据与本地已存储的业务数据进行比较,并将其中最新版本的业务数据发送给所述第二业务模块。
88.具体的,所述主数据服务模块在接收到所述第二业务模块的第一请求时,获取所述第一业务模块的业务数据,可采用如下任一种方式:
89.1)基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。
90.对于已存储的及新接收到的第一业务数据,所述主数据服务模块按照接收第一业务模块的业务数据的顺序,即按照业务数据的标识的顺序,依次读取第一业务数据。
91.其中,读取的第一业务数据可以是所述主数据服务模块在第一时刻之后存储或接收的业务数据,其中,所述第一时刻为所述主数据服务模块开始将接收到的来自所述第一业务模块的第一业务数据存储到本地的时刻。
92.2)基于所述第一业务模块的业务数据包括的关键词,获得包括相同关键词的业务数据,所述包括相同关键词的业务数据包括所述第一业务数据;基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。
93.对于已存储的及新接收到的来自所述第一业务模块的业务数据,所述主数据服务模块确定其中包括相同关键词的业务数据。在按照接收第一业务模块的业务数据的顺序,
即按照业务数据的标识的顺序,依次读取第一业务数据过程中,对于所述包括相同关键词的业务数据,获取其中最新接收到的第一业务数据即可。
94.s302:主数据服务模块向所述第二业务模块发送所述第一业务模块的业务数据。
95.所述主数据服务模块通过上述方法获取第一业务模块的业务数据后,向所述第二业务模块发送所述第一业务模块的业务数据。所述第二业务模块接收所述业务数据后上线,作为所述第一业务模块的备用业务模块工作。
96.在所述第二业务模块上线后,数据同步系统中可以采用与上述相同的方法,继续部署所述第一业务模块的备用业务模块,从而为所述第一业务模块部署多个备用业务模块。
97.示例性的,数据同步系统中新上线第三业务模块时,所述主数据服务模块接收来自所述第三业务模块的第二请求后,向所述第三业务模块发送所述第一业务模块的业务数据,以使所述第三业务模块完成与所述第一业务模块的数据同步,并在数据同步完成后作为所述第一业务模块的备用业务模块工作。
98.其中,所述主数据服务模块向所述第三业务模块同步所述第一业务模块的业务数据时,可参照上述所述主数据服务模块向所述第二业务模块同步所述第一业务模块的业务数据时采用的方法,此处不再赘述。
99.本技术实施例中,所述第一业务模块发生故障后,数据同步系统基于所述第一业务模块的多个备用业务模块的服务优先级,选择其中一个备用业务模块切换为主业务模块,接替所述第一业务模块工作。其中,多个备用业务模块的优先级可以为设定优先级或者根据设定指标参数确定的优先级,本技术实施例中不做具体限制。
100.所述第一业务模块发生故障时下线,对应的用于存储所述第一业务模块的业务数据的数据服务模块,也从主数据服务模块切换为非主数据服务模块。假设所述第二业务模块被选择后切换为主业务模块,则对应的用于存储所述第二业务模块的业务数据的第二数据服务模块从非主数据服务模块切换为主数据服务模块。所述第二数据服务模块切换为主数据服务模块后,具备对外发布数据的能力,用于为其它新上线的备用业务模块同步业务数据。
101.所述第一业务模块若能解决发生的故障,则可以作为备用业务模块再次上线。所述第一业务模块再次上线时,主业务模块为所述第二业务模块,所述第一业务模块为所述第二业务模块的备用业务模块,需同步所述第二业务模块的业务数据。
102.基于此,所述数据同步方法还可以包括以下步骤:
103.s303:若所述第一业务模块发生故障,则所述第二业务模块切换为主业务模块,接替所述第一业务模块处理业务,同时,所述第二业务模块对应的第二数据服务模块切换为主数据服务模块。
104.s304:所述主数据服务模块在接收到来自第一业务模块的第三请求时,获取所述第二业务模块的业务数据,并向所述第一业务模块发送所述第二业务模块的业务数据,其中,所述第三请求用于请求同步所述第二业务模块的业务数据。
105.本技术实施例中,主数据服务模块为与第二业务模块对应的数据服务模块,与第二业务模块对应的数据服务模块在第一业务模块故障后作为主数据服务模块,为作为备用的业务模块提供数据同步服务。当第一业务模块故障消除后,可正常提供业务处理,则第一
业务模块可作为第二业务模块的备份,向第二业务模块对应的数据服务模块请求相应的业务数据。
106.具体实施时,所述主数据服务模块在接收到所述第一业务模块的第三请求时,采用与上述获取所述第一业务模块的业务数据相同的方法,获取所述第二业务模块的业务数据。其中,所述主数据服务模块获取所述第二业务模块的业务数据时,获取所述主数据服务模块在第二时刻之后存储或接收的业务数据,其中,所述第二时刻为所述第一业务模块发生故障的时刻。
107.在本技术一些实施例中,所述第一业务模块可以在发送给所述主数据服务模块的第三请求中携带所述第二时刻,或者,所述主数据服务模块将所述第二业务模块切换为主业务模块的时刻确定为所述第二时刻,或者,所述主数据服务模块将自身从非主数据服务模块切换为主数据服务模块的时刻确定为所述第二时刻。
108.所述主数据服务模块向所述第一业务模块发送所述第二业务模块的业务数据时采用的方法,可参照上述步骤s302中主数据服务模块发送业务数据的方法,此处不再赘述。所述主数据服务模块通过上述方法向所述第一业务模块发送所述第二业务模块的业务数据后,所述第一业务模块上线,作为所述第二业务模块的备用业务模块工作。
109.本技术上述实施例中,通过为主业务模块部署多个备用业务模块,能够实现冗余多备份,提高系统容错率,减少故障导致的业务受损,因此故障保护能力较强。同时,利用单独的主数据服务模块代替主业务模块,为多个备用业务模块同步数据,能够不占用主业务模块的资源,保证主业务模块的正常业务处理性能。
110.本技术实施例中提及的第一时刻、第二时刻或某个时刻指代的是某个时间点。
111.实施例一
112.下面对本技术实施例中不同业务模块及不同数据服务模块的部署方式进行说明。
113.所述主业务模块为控制面部署的主程序,所述备用业务模块为所述主程序的备用程序。
114.具体的,数据同步服务模块为各应用程序(包括所述主程序和多个备用程序)分别实例化一个存储业务数据的数据服务模块,n(n为正整数)个应用程序将对应n个数据服务模块,其中,各应用程序与各数据服务模块对应,每个数据服务模块存储与其对应的一个应用程序的业务数据。各应用程序(也称为副本程序)和各数据服务模块的部署方式可采用如下任一实例所述的方式。
115.实例1、亲和部署方式
116.图4为本技术实施例提供的一种dss的亲和部署方式示意图。如图4所示,该方式中,路由系统的各程序与对应的数据服务模块部署在相同的进程、容器、vm或服务器中,不同组合的程序和数据服务模块分别部署在不同的进程、容器、vm或服务器中。上述部署方式中,每个程序及其对应的数据服务模块部署在单独的对象中,可以提升程序写数据到数据服务模块的吞吐性能和实时性。同时,在任一程序或数据服务模块或对象发生故障时,不会影响其它程序的正常运行,因此,路由系统的故障容错性较高。本技术实施例中提及的对象可以是进程、容器、vm或服务器。
117.实例2、独立部署方式
118.图5为本技术实施例提供的一种dss的独立部署方式示意图。如图5所示,该方式
中,路由系统的各程序与对应的数据服务模块分别部署在不同的进程、容器、vm或服务器中,不同的程序以及不同的数据服务模块分别部署在不同的进程、容器、vm或服务器中。上述部署方式中,一方面,每个程序及其对应的数据服务模块分别部署在不同的对象中,在程序发生故障时,对应的数据服务模块只需将该程序的业务数据删除,不需要做程序重启来恢复正常;另一方面,在任一程序或数据服务模块或对象发生故障时,不会影响其它对象的正常运行,因此,进一步提升了路由系统的故障容错性。
119.实例3、多对一部署方式
120.图6为本技术实施例提供的一种dss的多对一部署方式示意图。如图6所示,该方式中,路由系统的不同程序分别部署在不同的进程、容器、vm或服务器中,各程序对应的数据服务模块统一部署在同一个进程、容器、vm或服务器中。上述部署方式中,各程序对应的数据服务模块部署在同一个对象中,能够减少路由系统占用的资源,避免资源浪费。
121.实例4、另一种多对一部署方式
122.图7为本技术实施例提供的另一种dss的多对一部署方式示意图。如图7所示,该方式中,路由系统的不同程序分别部署在不同的进程、容器、vm或服务器中,多个程序对应的数据服务模块可以部署在相同的进程、容器、vm或服务器中。上述部署方式中,部分程序对应的数据服务模块部署在同一个对象中,能够减少一定的资源占用,避免资源浪费;同时存在部署在不同对象中的数据服务模块,能够提高故障容错性能。
123.上述各实例是对本技术实施例中可采用的业务模块与数据服务模块的部署方式的示例说明,在实际实施中,可根据实际需求灵活调整业务模块与数据服务模块的具体部署方式。
124.实施例二
125.下面结合具体实例对本技术实施例中业务模块的数据存储方法进行说明。下面以如上实施例一的实例1所述的部署方式为例,对所述路由系统中各程序的数据存储方法进行说明,本技术实施例提供的其它部署方式的数据存储方法可参照以下内容,不再逐一举例说明。
126.图8为本技术实施例提供的一种数据存储方法的示意图。如图8所示,每个数据服务模块包括数据队列(queue)部件和数据存储(data store)部件。所述数据队列部件提供先入先出队列,用于接收对应程序发送的业务数据。所述数据队列部件具备数据发布和订阅能力中的至少有中,其它程序可以从该队列读取业务数据。所述数据队列部件还支持同时提供多个数据队列,并且用户可以设置各种类型的业务数据所属的数据队列。所述数据存储部件用于存储业务数据,可以采用数据库、文件或者数据结构等存储形式。所述数据存储部件从所述数据队列部件中依次读取业务数据并存储。本技术实施例中提及的部件可以是单元、模块或其他可能的软件或硬件结构,本技术实施例对此不进行限定。
127.在本技术一些实施例中,所述数据存储部件存储的业务数据包括关键字(key)。其中,key可以为路由信息、路由的邻居信息等,本技术实施例对此不进行限定。基于所述关键字,所述数据存储模块在存储业务数据时,能够对具有同一关键字的业务数据进行合并更新等操作,因此,对于同一业务数据能够存储该业务数据的最新版本。
128.图9为本技术实施例提供的一种数据服务模块存储业务数据的流程示意图。如图9所示,该流程包括:
129.s901:应用程序和数据服务模块启动后,路由系统发布数据服务模块的服务信息。
130.其中,所述应用程序包括主程序和备用程序,所述服务信息包括数据服务模块的地址。路由系统可以是主程序和主程序对应的数据服务模块所属的系统。
131.s902:应用程序通过查询所述服务信息,确定对应的数据服务模块的地址。
132.s903:应用程序处理业务过程中生成业务数据时,根据对应的数据服务模块的地址,发送所述业务数据到所述数据服务模块。
133.s904:所述数据服务模块将所述业务数据写入到所述应用程序对应的数据队列。
134.其中,该步骤由所述数据服务模块中的数据队列部件完成。
135.可选的,所述数据服务模块中的数据队列部件将所述业务数据写入所述数据队列时,根据接收所述业务数据的时间先后顺序,并按照版本号从小到大的顺序,生成所述业务数据的版本号。
136.s905:所述数据服务模块从所述数据队列中读取业务数据,并确定该业务数据的关键字。
137.s906:所述数据服务模块确定是否存在与所述关键字对应的已存储业务数据,若是,执行步骤s907,否则,执行步骤s908。
138.s907:所述数据服务模块利用读取的业务数据替换所述已存储的业务数据。
139.s908:所述数据服务模块存储读取的业务数据。
140.其中,上述步骤s905~s908由所述数据服务模块中的数据存储部件完成。
141.上述实施例中,数据服务模块存储应用程序的业务数据方式,能够按照顺序存储业务数据,并能在存储过程中实时更新存储的业务数据,从而删除掉无用的旧版本数据,因此能合理利用资源,节省存储空间。
142.实施例三
143.下面结合具体实例对本技术实施例提供的数据同步方法进行说明。图10为本技术实施例提供的一种数据同步方法的示意图。如图10所示,基于上述实施例二,每个数据服务模块还包括数据发布(data publisher)部件和高速缓存(cache)部件。
144.在本技术一些实施例中,各数据服务模块的数据队列部件每接收到一条业务数据,为该业务数据生成一个版本号,所述版本号用于比较业务数据的新旧。所述数据存储部件从所述数据队列部件读取并存储该业务数据时,所述cache部件同时存储该业务数据的版本号。其中,所述数据队列模块按照接收业务数据的时间先后顺序,及按照版本号从小到大的顺序,为接收到的业务数据生成版本号,因此,一个数据队列中的各业务数据共用一个版本号空间。
145.所述主数据服务模块的数据发布部件用于从数据队列部件和数据存储部件中读取主程序的业务数据,并通过从所述cache部件查询业务数据的新旧版本,将其中的最新版本数据发送给备用程序。
146.所述cache部件根据存储的业务数据的版本号比较业务数据的新旧版本,具体的,所述存储部件存储业务数据时,所述cache部件同时存储该业务数据的版本号所述cache部件从所述数据队列部件中获取实时业务数据,从所述数据存储部件中获取历史业务数据。与此同时,所述数据存储部件也从所述数据队列部件中获取实时业务数据,并存储所述实时业务数据或更新已存储的历史业务数据。所述cache部件从所述数据队列部件和数据存
储部件获取业务数据后,针对关键字相同的业务数据,比较版本号的大小,将其中版本号较大的业务数据作为新版本的业务数据,并由所述数据发布部件将新版本的业务数据发送给备用程序。
147.下面以原主程序因为故障下线后,重新启动并切换为新的备用程序为例,对本技术实施例提供的数据同步方法进行说明。
148.在本技术一些实施例中,主程序发生故障后下线,该主程序的多个备用程序的其中一个备用程序切换为新的主程序,同时所述备用程序对应的数据服务模块切换为新的主数据服务模块。而原本的主程序后续若能消除发生的故障,则可以在消除故障后重新上线。由于在原本的主程序下线后,会有备用程序切换为新的主程序来接替所述原主程序处理业务,因此,所述原本的主程序再次上线是作为新的主程序的备用程序上线的,该原本的主程序从新的主程序对应的主数据服务模块同步业务数据。
149.图11为本技术实施例提供的一种数据同步方法的流程示意图。如图11所示,该流程包括:
150.s1101:备用程序向主程序对应的主数据服务模块发送数据同步请求。
151.其中,所述主程序原本为备用程序,在原本的主程序发生故障后才切换为主程序,所述备用程序原本为主程序,在发生故障后停止服务,并在通过重启解决所述故障后切换为备用程序。所述备用程序通过所述数据同步请求,向所述主数据服务模块请求所述主程序在所述原本的主程序发生故障后生成的新版本的业务数据。
152.s1102:所述主数据服务模块接收所述数据同步请求后,从主程序对应的数据队列中读取实时业务数据和历史业务数据。
153.其中,该步骤由所述主数据服务模块中的数据发布部件完成。所述数据发布部件从数据存储部件读取所述历史业务数据。
154.s1103:所述主数据服务模块确定读取的业务数据是否为新版本业务数据。若是,执行步骤s1104,否则,执行步骤s1105。
155.其中,该步骤由所述主数据服务模块中的cache部件完成。
156.本实施例中,所述cache部件通过比较同一关键字对应的不同业务数据的版本号,确定业务数据的新旧版本。所述主数据服务模块接收到数据同步请求后,所述cache部件先确定在所述原本的主程序发生故障时,所述数据存储部件存储的业务数据的版本号,并将该版本号作为参考版本号。在所述数据发布部件读取实时业务数据和历史业务数据后,所述cache部件比较读取的各业务数据的版本号与所述参考版本号的大小,若所述版本号大于所述参考版本号,则确定所述业务数据为新版本的业务数据,否则,确定所述业务数据为旧版本的业务数据。其中,若存在与读取的业务数据关键字相同的业务数据,则将其中版本号最大的业务数据确定为新版本数据,将其中版本号不是最大的业务数据确定为旧版本数据。
157.s1104:所述主数据服务模块将所述业务数据发送到所述备份服务器,并保存所述业务数据的关键字和版本号,同时删除存储的其它与该关键字对应的业务数据及其版本号。
158.所述cache部件确定新版本数据后,所述数据发布部件将所述新版本数据发送到所述备用程序。
159.s1105:所述主数据服务模块继续读取业务数据。
160.本实施例中,所述主数据服务模块读取历史业务数据并重复执行上述步骤s1103~s1105。
161.上述实施例中,原本的主程序发生故障后,可以再次作为新的备用程序上线,这种情况下,向该备用程序同步数据时,需同步所述原本的主程序故障之后的数据即可,因此,能够加快数据同步的速度,节省数据同步时间。同时,主程序需将生成的数据发送到主数据服务模块即可,对主程序性能的影响很低。
162.实施例四
163.下面结合具体实例对本技术实施例提供的数据同步方法进行说明。
164.如图10所示,基于上述实施例三中所述的数据服务模块的结构,在所述备用程序为新部署的备用程序时,需要同步主程序的全部新版本业务数据才能完成上线。并且,新部署的备用程序上线期间,主程序在正常运行,运行期间的业务可能不断产生数据变化,因此,主数据服务模块需将实时数据和历史数据中的最新版本发送给备用程序。
165.图12为本技术实施例提供的一种数据同步方法的流程示意图。如图12所示,该流程包括:
166.s1201:备用程序向主程序对应的主数据服务模块发送数据同步请求。
167.其中,所述备用程序为新部署的备用程序,所述备用程序通过所述数据同步请求,向所述主数据服务模块请求所述主程序生成的新版本的业务数据。
168.s1202:所述主数据服务模块接收所述数据同步请求后,从主程序对应的数据队列中读取实时业务数据,并同时读取在接收到所述数据同步请求时本地已存储的历史业务数据。
169.其中,该步骤由所述主数据服务模块中的数据发布部件完成。所述数据发布部件从数据存储部件读取所述历史业务数据。
170.s1203:所述主数据服务模块确定读取的业务数据是否为新版本数据。若是,执行步骤s1204,否则,执行步骤s1205。
171.其中,该步骤由所述主数据服务模块中的cache部件完成。
172.本实施例中,所述cache部件通过比较同一关键字的不同业务数据的版本号,确定数据的新旧。在所述数据发布部件读取实时业务数据和历史业务数据后,所述cache部件确定是否存在与读取的业务数据的关键字相同的业务数据,若存在,则将关键字相同的业务数据中版本号最大的业务数据确定为新版本数据,及将其中版本号不是最大的业务数据确定为旧版本数据;否则,将读取的所述业务数据确定为新版本数据。
173.其中,所述数据发布部件从数据队列读取实时业务数据时,所述cache部件若确定所述实时业务数据的版本号,大于已存储的全部业务数据中最大的版本号,则能够确定后续所述数据发布部件读取的实时数据的版本号均大于所述最大的版本号,因此,所述数据发布部件后续读取的实时业务数据均为新版本业务数据。这种情况下,所述数据发布部件读取到实时业务数据后,可直接将所述业务数据发送到备用程序,而无需再通过所述cache部件比较版本号确定数据新旧。同时,所述cache部件可以删除存储的版本号中小于所述最大版本号的版本号信息,能够释放一部分存储版本号的空间。
174.s1204:所述主数据服务模块将所述业务数据发送到所述备用程序,并保存所述业
务数据的关键字和版本号,同时删除存储的其它与该关键字对应的业务数据及其版本号。
175.所述cache部件确定新版本数据后,所述数据发布部件将所述新版本数据发送到所述备用程序。
176.s1205:所述主数据服务模块继续读取业务数据。
177.本实施例中,所述主数据服务模块读取历史业务数据时,可以按照设定的顺序例如按照版本号从小到大的顺序,依次读取历史业务数据,并重复执行上述步骤s1103~s1105,至读取到在接收所述数据同步请求时存储的业务数据为止。
178.作为一种实现方式,所述主数据服务模块读取所述历史业务数据时,还可以按照关键字的字段排布顺序,依次读取本地已存储的历史业务数据。例如,可以按照所述关键字的拼音首字母从a到z的顺序,依次读取历史业务数据至读取到关键字的拼音首字母为z的最后一条已存储业务数据为止。
179.上述实施例中,新部署的备用程序上线时,通过主数据服务模块为所述新部署的备用程序同步数据,因此,主程序需将生成的数据发送到主数据服务模块即可,在实现将主程序数据同步到新上线的备用程序的同时,大大减小了主程序的负担,进而能够保证主程序的业务不受影响。
180.基于以上实施例,本技术实施例还提供了一种数据同步装置,所述数据同步装置可以应用于本技术实施例提供的主数据服务模块,如图13所示,所述数据同步装置1300包括:
181.接收单元1301,用于接收来自第二业务模块的第一请求,所述第一请求用于请求同步第一业务模块的业务数据;
182.处理单元1302,用于获取所述第一业务模块的业务数据;
183.发送单元1303,用于向所述第二业务模块发送所述第一业务模块的业务数据。
184.在一种可能的设计中,所述接收单元1301还用于接收来自第三业务模块的第二请求,所述第二请求用于请求同步所述第一业务模块的业务数据;所述发送单元1303还用于向所述第三业务模块发送所述第一业务模块的业务数据。
185.在一种可能的设计中,所述第二业务模块切换为主业务模块,所述接收单元1301还用于接收来自所述第一业务模块的第三请求,所述第三请求用于请求同步所述第二业务模块的业务数据;所述处理单元1302还用于获取所述第二业务模块的业务数据;所述发送单元1303还用于向所述第一业务模块发送所述第二业务模块的业务数据。
186.在一种可能的设计中,所述处理单元1302获取所述第一业务模块的业务数据之前,还用于:获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业务数据的标识。
187.在一种可能的设计中,所述处理单元1302获取所述第一业务模块的业务数据之前,还用于:获取第二业务数据和所述第二业务数据的标识,所述第二业务数据的标识用于表示获取第二业务数据的顺序;存储所述第二业务数据和所述第二业务数据的标识;获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据晚于所述第二业务数据被获取,所述第一业务数据和所述第二业务数据均为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业
务数据的标识。
188.在一种可能的设计中,所述处理单元1302获取所述第一业务模块的业务数据时,具体用于:基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。
189.在一种可能的设计中,所述处理单元1302获取所述第一业务模块的业务数据时,具体用于:基于所述第一业务模块的业务数据包括的关键词,获得包括相同关键词的业务数据,所述包括相同关键词的业务数据包括所述第一业务数据;基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。
190.在一种可能的设计中,所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于同一个对象中;或者所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于不同的对象中。
191.在一种可能的设计中,所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于同一个对象中;或者所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于不同的对象中。
192.在一种可能的设计中,所述对象包括应用进程、容器、虚拟机、服务器或电子设备。
193.作为一种实现方式,所述数据同步装置1300还可以包括存储单元1304,用于存储所述数据同步装置1300的程序代码和数据。其中,所述处理单元1302可以是处理器或控制器,例如可以是通用中央处理器(central processing unit,cpu),通用处理器,数字信号处理(digital signal processing,dsp),专用集成电路(application specific integrated circuits,asic),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块等。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,dsp和微处理器的组合等等。所述存储单元1304可以是存储器。所述接收单元1301和发送单元1303可以是一种该装置的接口电路,用于从其它装置接收信号。例如,当该装置以芯片的方式实现时,接收单元1301是该芯片用于从其它芯片或装置接收信号的接口电路,或者,发送单元1303是该芯片用于向其它芯片或装置发送信号的接口电路。
194.本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本技术各个实施例中的各功能单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
195.图13中的各个单元的只一个或多个可以软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括但不限于各类集成电路,如中央处理单元(cpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或专用集成电路(asic)。
196.基于以上实施例,本技术实施例还提供了一种数据同步装置,用于实现本技术实施例提供的数据同步方法。如图14所示,所述数据同步装置1400可以包括:一个或多个处理
器1401,存储器1402,以及一个或多个计算机程序(图中未示出)。作为一种实现方式,上述各器件可以通过一个或多个通信线路1403耦合。其中,存储器1402中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;处理器1401调用存储器1402中存储的所述指令,使得数据同步装置1400执行本技术实施例提供的数据同步方法。
197.在本技术实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
198.在本技术实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
199.作为一种实现方式,所述数据同步装置1400还可以包括通信接口1404,用于通过传输介质和其它装置进行通信。在本技术实施例中,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。在本技术实施例中,通信接口为收发器时,收发器可以包括独立的接收器、独立的发射器;也可以集成收发功能的收发器、或者是接口电路。
200.在本技术一些实施例中,所述处理器1401、存储器1402以及通信接口1404可以通过通信线路1403相互连接;通信线路1403可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。所述通信线路1403可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
201.本技术实施例还包括一种系统,该系统包括上述数据同步装置1300或数据同步装置1400。
202.本技术实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称dvd)、或者半导体介质
(例如,ssd)等。
203.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
204.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a和b和c,其中a,b,c可以是单个,也可以是多个。
205.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
206.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
207.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
208.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
209.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,在没有超过本技术的范围内,可以通过其他的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
210.另外,所描述装置和方法以及不同实施例的示意图,在不超出本技术的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或
直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电子、机械或其它的形式。
211.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种数据同步方法,其特征在于,应用于第一数据服务模块,包括:接收来自第二业务模块的第一请求,所述第一请求用于请求同步第一业务模块的业务数据;获取所述第一业务模块的业务数据;向所述第二业务模块发送所述第一业务模块的业务数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收来自第三业务模块的第二请求,所述第二请求用于请求同步所述第一业务模块的业务数据;向所述第三业务模块发送所述第一业务模块的业务数据。3.根据权利要求1或2所述的方法,其特征在于,所述第二业务模块切换为主业务模块,所述方法还包括:接收来自所述第一业务模块的第三请求,所述第三请求用于请求同步所述第二业务模块的业务数据;获取所述第二业务模块的业务数据;向所述第一业务模块发送所述第二业务模块的业务数据。4.根据权利要求1至3任一所述的方法,其特征在于,所述获取所述第一业务模块的业务数据之前,所述方法还包括:获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业务数据的标识。5.根据权利要求1至3任一所述的方法,其特征在于,所述获取所述第一业务模块的业务数据之前,所述方法还包括:获取第二业务数据和所述第二业务数据的标识,所述第二业务数据的标识用于表示获取第二业务数据的顺序;存储所述第二业务数据和所述第二业务数据的标识;获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据晚于所述第二业务数据被获取,所述第一业务数据和所述第二业务数据均为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业务数据的标识。6.根据权利要求4或5所述的方法,其特征在于,所述获取所述第一业务模块的业务数据包括:基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。7.根据权利要求4或5所述的方法,其特征在于,所述获取所述第一业务模块的业务数据包括:基于所述第一业务模块的业务数据包括的关键词,获得包括相同关键词的业务数据,所述包括相同关键词的业务数据包括所述第一业务数据;基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。
8.根据权利要求1至7任一所述的方法,其特征在于,所述第一业务模块与所述第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于同一个对象中;或者所述第一业务模块与所述第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于不同的对象中。9.根据权利要求1至7任一所述的方法,其特征在于,所述第一业务模块与所述第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于同一个对象中;或者所述第一业务模块与所述第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于不同的对象中。10.根据权利要求8或9所述的方法,其特征在于,所述对象包括应用进程、容器、虚拟机、服务器或电子设备。11.一种数据同步装置,其特征在于,包括:接收单元,用于接收来自第二业务模块的第一请求,所述第一请求用于请求同步第一业务模块的业务数据;处理单元,用于获取所述第一业务模块的业务数据;发送单元,用于向所述第二业务模块发送所述第一业务模块的业务数据。12.根据权利要求11所述的数据同步装置,其特征在于,所述接收单元还用于接收来自第三业务模块的第二请求,所述第二请求用于请求同步所述第一业务模块的业务数据;所述发送单元还用于向所述第三业务模块发送所述第一业务模块的业务数据。13.根据权利要求11或12所述的数据同步装置,其特征在于,所述第二业务模块切换为主业务模块,所述接收单元还用于接收来自所述第一业务模块的第三请求,所述第三请求用于请求同步所述第二业务模块的业务数据;所述处理单元还用于获取所述第二业务模块的业务数据;所述发送单元还用于向所述第一业务模块发送所述第二业务模块的业务数据。14.根据权利要求11至13任一所述的数据同步装置,其特征在于,所述处理单元获取所述第一业务模块的业务数据之前,还用于:获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业务数据的标识。15.根据权利要求11至13任一所述的数据同步装置,其特征在于,所述处理单元获取所述第一业务模块的业务数据之前,还用于:获取第二业务数据和所述第二业务数据的标识,所述第二业务数据的标识用于表示获取第二业务数据的顺序;存储所述第二业务数据和所述第二业务数据的标识;获取第一业务数据和所述第一业务数据的标识,所述第一业务数据的标识用于表示获取第一业务数据的顺序,所述第一业务数据晚于所述第二业务数据被获取,所述第一业务数据和所述第二业务数据均为所述第一业务模块的业务数据;存储所述第一业务数据和所述第一业务数据的标识。
16.根据权利要求14或15所述的数据同步装置,其特征在于,所述处理单元获取所述第一业务模块的业务数据时,具体用于:基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。17.根据权利要求14或15所述的数据同步装置,其特征在于,所述处理单元获取所述第一业务模块的业务数据时,具体用于:基于所述第一业务模块的业务数据包括的关键词,获得包括相同关键词的业务数据,所述包括相同关键词的业务数据包括所述第一业务数据;基于获取所述第一业务模块的业务数据的顺序,获取与所述第一业务数据的标识对应的所述第一业务数据。18.根据权利要求11至17任一所述的数据同步装置,其特征在于,所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于同一个对象中;或者所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一业务模块与所述第一数据服务模块部署于不同的对象中。19.根据权利要求11至17任一所述的数据同步装置,其特征在于,所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于同一个对象中;或者所述第一业务模块与所述装置所在的第一数据服务模块对应,且所述第一数据服务模块与所述第二业务模块对应的数据服务模块部署于不同的对象中。20.根据权利要求18或19所述的数据同步装置,其特征在于,所述对象包括应用进程、容器、虚拟机、服务器或电子设备。
技术总结
本申请提供一种数据同步方法及装置,应用于第一数据服务模块,所述方法包括:接收来自第二业务模块的第一请求,所述第一请求用于请求同步第一业务模块的业务数据;获取所述第一业务模块的业务数据;向所述第二业务模块发送所述第一业务模块的业务数据。本申请提供的方案中,通过第一数据服务模块代替所述第一业务模块,为所述第二业务模块同步所述第一业务模块的业务数据,能够避免或降低数据同步过程对所述第一业务模块的负面影响,保证所述第一业务模块的性能。务模块的性能。务模块的性能。
技术研发人员:张旭东 张鹏 姜戎 秦神祖
受保护的技术使用者:华为技术有限公司
技术研发日:2020.11.20
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-22325.html