一种数据处理方法、装置、设备和存储介质与流程

文档序号:28951975发布日期:2022-02-19 10:51阅读:81来源:国知局
一种数据处理方法、装置、设备和存储介质与流程

1.本发明涉及数据处理技术,尤其涉及一种数据处理方法、装置、电子设备和计算机存储介质。


背景技术:

2.相关技术中,跨kubernetes集群的容灾备份方法主要是通过备份kubernetes集群中etcd组件的数据来实现kubernetes集群之间的容灾备份的,因此,需要定期对etcd组件进行快照备份,且无论是手动备份kubernetes集群的etcd组件以恢复发生故障的kubernetes集群,还是通过同步工具恢复发生故障的kubernetes集群,都可能无法对两次备份时间间隔内因数据操作所产生的数据变化信息进行备份,导致数据变化信息丢失。


技术实现要素:

3.本发明实施例期望提供数据处理的技术方案,以解决相关技术中无法对两次备份时间间隔内因数据操作所产生的数据变化信息进行备份,导致数据变化信息丢失的问题。
4.本发明实施例提供了一种数据处理方法,所述方法包括:
5.实时监控第一集群上的资源信息,所述第一集群表示基于容器资源的主集群;
6.根据所述资源信息确定是否生成至少一个资源事件,在确定生成至少一个资源事件的情况下,将所述至少一个资源事件同步至第二集群,所述资源事件表示因资源操作导致的资源变化信息,所述第二集群表示所述基于容器资源的主集群对应的备份集群。
7.可选地,所述将所述至少一个资源事件同步至第二集群,包括:
8.在所述至少一个资源事件的个数大于1的情况下,按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件同步至第二集群。
9.可选地,所述按照所述至少一个资源事件的发生的先后顺序将所述至少一个资源事件同步至第二集群,包括:
10.按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件存储在消息队列中;
11.从所述消息队列中按照所述先后顺序获取所述至少一个资源事件,并将获取的所述至少一个资源事件同步至所述第二集群。
12.可选地,所述实时监控第一集群上的资源信息,包括:
13.确定同步资源类型,所述同步资源类型表示第一集群上需要进行监控的资源的类型;
14.实时监控所述同步资源类型对应的资源信息。
15.可选地,所述方法还包括:
16.确定成功将所述至少一个资源事件同步至所述第二集群的情况下,更新同步进度信息,所述同步进度信息表示所述至少一个资源事件对应的同步状态信息。
17.可选地,所述实时监控第一集群上的资源信息包括:利用同步组件监控第一集群
上的资源信息,
18.所述方法还包括:
19.在所述同步组件重启的情况下,获取所述同步进度信息,根据所述同步进度信息,确定需要进行同步的资源事件。
20.可选地,所述更新同步进度信息,包括:将所述同步进度信息更新至存储数据库中,
21.所述获取所述同步进度信息,包括:
22.从所述存储数据库中获取所述同步进度信息。
23.可选地,所述方法还包括:
24.在将所述至少一个资源事件同步至所述第二集群失败的情况下,控制所述同步组件重启。
25.本发明实施例还提供了一种数据处理装置,所述装置包括:监控模块和同步模块,其中,
26.所述监控模块,用于实时监控第一集群上的资源信息,所述第一集群表示基于容器资源的主集群;
27.所述同步模块,用于根据所述资源信息确定是否生成至少一个资源事件,在确定生成至少一个资源事件的情况下,将所述至少一个资源事件同步至第二集群,所述资源事件表示因资源操作导致的资源变化信息,所述第二集群表示所述基于容器资源的主集群对应的备份集群。
28.可选地,所述同步模块用于将所述至少一个资源事件同步至第二集群,包括:
29.在所述至少一个资源事件的个数大于1的情况下,按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件同步至第二集群。
30.可选地,所述同步模块用于按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件同步至第二集群,包括:
31.按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件存储在消息队列中;
32.从所述消息队列中按照所述先后顺序获取所述至少一个资源事件,并将获取的所述至少一个资源事件同步至所述第二集群。
33.可选地,所述监控模块用于实时监控第一集群上的资源信息,包括:
34.确定同步资源类型,所述同步资源类型表示第一集群上需要进行监控的资源的类型;
35.实时监控所述同步资源类型对应的资源信息。
36.可选地,所述同步模块还用于确定成功将所述至少一个资源事件同步至所述第二集群的情况下,更新同步进度信息,所述同步进度信息表示所述至少一个资源事件对应的同步状态信息。
37.可选地,所述监控模块用于实时监控第一集群上的资源信息包括:利用同步组件监控第一集群上的资源信息,所述监控模块还用于在所述同步组件重启的情况下,获取所述同步进度信息,根据所述同步进度信息,确定需要进行同步的资源事件。
38.可选地,所述同步模块用于更新同步进度信息,包括:将所述同步进度信息更新至
存储数据库中,
39.所述监控模块用于获取所述同步进度信息,包括:
40.从所述存储数据库中获取所述同步进度信息。
41.可选地,所述监控模块还用于在将所述至少一个资源事件同步至所述第二集群失败的情况下,控制所述同步组件重启。
42.本发明实施例还提供了一种电子设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
43.所述处理器用于运行所述计算机程序时,执行上述任意一种所述的数据处理方法。
44.本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种所述的数据处理方法。
45.可以看出,本发明实施例中的数据处理方法,通过实时监控第一集群上的资源信息,所述第一集群表示基于容器资源的主集群;根据所述资源信息确定是否生成至少一个资源事件,在确定生成所述至少一个资源事件的情况下,将所述至少一个资源事件同步至第二集群,所述资源事件表示因资源操作导致的资源变化信息,所述第二集群表示所述基于容器资源的主集群对应的备份集群;由于本发明实施例中,可以实时监控第一集群上的资源信息,能够监测到第一集群上发生的所有资源事件,因此,有利于避免因为备份时间间隔所导致的资源信息丢失。
46.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本发明。
附图说明
47.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本发明的实施例,并与说明书一起用于说明本发明的技术方案。
48.图1为本发明实施例的一种数据处理方法的流程图;
49.图2为本发明实施例的kubernetes资源备份的架构示意图;
50.图3为本发明实施例的同步组件的内部构架示意图;
51.图4为本发明实施例的同步组件的工作流程示意图;
52.图5为本发明实施例的数据处理装置的组成结构示意图;
53.图6为本发明实施例的电子设备的结构示意图。
具体实施方式
54.以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
55.需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要
素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
56.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
57.例如,本发明实施例提供的数据处理方法包含了一系列的步骤,但是本发明实施例提供的数据处理方法不限于所记载的步骤,同样地,本发明实施例提供的数据处理装置包括了一系列模块,但是本发明实施例提供的装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
58.本发明实施例可以应用于服务器等硬件或硬件组成的计算机系统中,并可以与众多其它通用或专用计算系统环境或配置一起操作,或者可通过处理器运行计算机可执行代码的方式实现本发明实施例。这里,服务器可以是服务器计算机系统小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
59.服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
60.随着容器化需求的增大,kubernetes作为容器编排引擎的使用也越来广泛,而在生产环境中高可用和灾备就成为了一个不得不考虑的功能点。目前对于kubernetes中容器的灾备方式主要是在一个kubernetes集群内部通过多副本方式或者探针检测重启pod来实现的。而对于不同kubernetes集群之间的灾备方式,相关技术中,比较通用的容灾方式是对kubernetes中的etcd组件做快照,当kubernetes主集群无法正常工作时,可以通过对etcd组件进行快照手动恢复到备用的kubernetes集群上,或者通过etcd组件的同步工具,例如,etcdctl make-mirror,以实现etcd组件中数据的同步。
61.对于上述的一个kubernetes集群内部做容灾的方式,其仅支持在kubernetes集群主节点能够正常工作,而业务容器无法正常工作的情况下的容灾,而当kubernetes集群的主节点不能工作时,处于主节点上的管理组件也会无法工作,也就不能为业务节点上的容器进行管理了,因此,当业务容器出现问题时,无法对业务集群出现的问题进行恢复。
62.对于上述的通过备份kubernetes集群中etcd组件的数据来实现kubernetes集群间的容灾备份方式,由于该方式需要定期对kubernetes集群中的etcd组件进行快照备份,而不管是手动备份kubernetes集群的etcd组件以恢复发生故障的kubernetes集群,还是通过同步工具恢复发生故障的kubernetes集群,都可能无法对两次备份时间间隔内因数据操作所产生的数据变化信息进行备份,导致数据变化信息丢失。
63.为了解决上述技术问题,本发明实施例提出一种数据处理方法,图1为本发明实施例的一种数据处理方法的流程图,如图1所示,该流程可以包括:
64.步骤101:实时监控第一集群上的资源信息,所述第一集群表示基于容器资源的主
集群。
65.在一个示例中,容器资源可以表示为以资源容器为单位的资源单元,这里,可以将系统的计算资源统一划分和封装为很多资源单元。
66.在一种实施方式中,第一集群可以是kubernetes主集群,也可以是其它类型的基于容器资源的主集群,资源信息可以表示kubernetes集群中资源的变化信息。实时监控第一集群上的资源信息的实现方式,可以是确定同步资源类型,所述同步资源类型表示第一集群上需要监控的资源的类型,进而,实时监控所述同步资源类型对应的资源信息。
67.在一个示例中,同步资源类型可以包括一种资源类型,也可以包括多种资源类型,例如,同步资源类型可以包括configmap这一种资源类型,也可以包括configmap、depleyment和namespace这三种资源类型。确定同步资源类型的实现方式,可以是根据用户需要确定第一集群上需要进行同步的资源,根据所确定的需要同步的资源确定对应的资源类型,例如,在用户需求是同步configmap和depleyment资源的情况下,确定的对应的资源类型是configmap和depleyment两种资源类型,同时,在确定需要同步第一集群的资源时,可以创建同步组件,同步组件可以是synccomponent组件,进一步地,同步组件可以被认为是一个kubernetes的自定义资源(custom resource definition,crd),其中,同步组件的crd可以定义为:
68.69.在创建了同步组件的crd后,会有该crd对应的控制组件(controller)监控到,并创建一个同步组件对应的服务实例,其中,控制组件(controller)位于kubernetes集群中。
70.在第二集群表示第一集群对应的备份集群,且需要对第一集群和第二集群进行同步时,需要通过在同步组件中进行如下相关设置:
[0071][0072][0073]
其中,可以将同步组件synccomponent的名称设定为第二集群(备份集群)的唯一标识符,在spec对应的设置信息中包括对第一集群(主集群)和第二集群(备份集群)的唯一标识符以及第二集群(备份集群)的相关证书等信息的设置,通过这些信息的设置,同步组件才可以同时操作第一集群和第二集群。
[0074]
对于实时监控同步资源类型对应的资源信息的实现方式,可以是通过同步组件中的监测模块(watcher)来实时监控同步资源类型对应的资源信息,具体地,监测模块(watcher)可以监控第一集群上的各种资源信息的变化情况,并将资源变化情况对应的数据进行格式转化,转化为格式为yaml格式的数据,并将转化后的数据存入同步组件synccomponent中的消息队列中;具体地,可以通过configmap和depleyment两种资源类型对应两个不同监测模块(watcher),来实现对资源信息的实时监控,例如,对于configmap资源对应监测模块watcher1,对于depleyment资源对应监测模块depleyment2来对资源信息进行实时监控。
[0075]
可以看出,根据需求确定需要资源同步的资源对应的资源类型,进而,只监控确定的资源类型对应的资源信息的方式,可以不需要对整个kubernetes集群监控,减少了资源监控的损耗。
[0076]
步骤102:根据所述资源信息确定是否生成至少一个资源事件,在确定生成至少一个资源事件的情况下,将所述至少一个资源事件同步至第二集群,所述资源事件表示因资源操作导致的资源变化信息,所述第二集群表示所述基于容器资源的主集群对应的备份集群。
[0077]
作为一种实施方式,资源操作可以是对某种资源,例如,configmap、namespace或
者depleyment资源的删除、创建、以及修改等操作,这里不进行具体地限定;资源事件可以表示因创建一个configmap资源实例或者depleyment资源实例而导致的资源变化信息,具体地,某一类型的资源可以包含很多个该类型的资源实例。
[0078]
资源事件可以是对该类型资源中的一个资源实例的操作所导致的资源变化信息,当然,资源事件也可以是针对多种类型的资源中的1个资源实例的操作所导致的资源变化信息;具体地,对于configmap资源可以包含很多个configmap资源实例,例如,可以包含资源实例a、资源实例b、资源实例c和资源实例d,资源事件可以是删除资源实例a所导致的资源变化信息,也可以是创建资源实例b所导致的资源变化信息;对于configmap资源和depleyment资源,且depleyment资源包含资源实例e、资源实例f、资源实例g和资源实例h的情况,资源事件可以是删除资源实例a、修改资源实例b、创建资源实例g或删除资源f任意一种操作所导致的资源变化信息。
[0079]
在一个示例中,根据所述资源信息确定是否生成至少一个资源事件,可以是根据检测到的删除资源实例a和修改资源实例b所导致的资源信息变化,确定是否生成资源事件1和资源事件2。在确定生成至少一个资源事件的情况下,将所述至少一个资源事件同步至第二集群的实现方式,可以是在确定生成至少一个资源事件的情况下,将确定生成的资源事件1和资源事件2同步至第二集群。
[0080]
在实际应用中,步骤101至步骤102可以利用电子设备中的处理器实现,上述处理器可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、fpga、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。
[0081]
可以看出,本发明实施例提出了一种数据处理方法,通过实时监控第一集群上的资源信息,所述第一集群表示基于容器资源的主集群;根据所述资源信息确定是否生成至少一个资源事件,在确定生成至少一个资源事件的情况下,将所述至少一个资源事件同步至第二集群,所述资源事件表示因资源操作导致的资源变化信息,所述第二集群表示所述基于容器资源的主集群对应的备份集群;由于本发明实施例中,可以实时监控第一集群上的资源信息,能够监测到第一集群上发生的所有资源事件,因此,有利于避免因为备份时间间隔所导致的资源信息丢失。
[0082]
在一种实施方式中,所述将所述至少一个资源事件同步至第二集群,包括:在所述至少一个资源事件的个数大于1的情况下,按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件同步至第二集群。
[0083]
在一个示例中,按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件同步至第二集群,可以是按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件存储在消息队列中,从所述消息队列中按照所述先后顺序获取所述至少一个资源事件,并将获取的所述至少一个资源事件同步至所述第二集群。
[0084]
具体地,对于至少一个资源事件是资源事件1和资源事件2,且资源事件1发生在资源事件2之前的情况,按照所述至少一个资源事件的顺序将所述至少一个资源事件存储在消息队列中的实现方式,可以是先将资源事件1存储到消息队列然后再将资源事件2存储到消息队列,从所述消息队列中按照所述顺序获取所述至少一个资源事件,并将获取的所述
至少一个资源事件同步至所述第二集群,可以是从消息队列中先获取资源事件1并将资源事件1同步至第二集群,再从消息队列中获取资源事件2,并将资源事件2同步至第二资源集群。这里,消息队列可以位于同步组件中,并用于存放各种资源事件,以保证事件能够按照顺序被执行。同步组件中还包括
[0085]
在一个示例中,将所述至少一个资源事件同步至第二集群,可以是通过同步组件中的处理模块handler获取消息队列中的至少一个资源事件,并将获取的至少一个资源事件同步到第二集群中,具体地,可以是处理模块handler获取消息队列中的yaml格式的数据,并对获取的yaml格式的数据进行反序列化,解析出对应的资源事件,并根据解析出的资源事件同步第二集群。
[0086]
将所述至少一个资源事件同步至第二集群的实现方式,示例性地,可以是分别针对资源事件确定资源事件对应的具体资源实例,并对确定的资源实例进行标识,处理模块handler只对标识的资源实例进行同步操作,而不对未标识的资源实例进行同步操作,例如,对于至少一个资源事件分别是资源事件1和资源事件2的情况,其中,资源事件1表示删除configmap资源实例a所导致的资源变化信息,资源事件2表示创建depleyment资源实例b所导致的资源变化信息,且资源事件1发生在资源事件2之前,分别标识configmap资源实例a和depleyment资源实例b,而不对configmap资源实例a和depleyment资源实例b以外的其它configmap资源实例和depleyment资源实例进行标识,处理模块handler只对标识的configmap资源实例a和depleyment资源实例b进行同步操作,而不对未标识的configmap资源实例a和depleyment资源实例b以外的其它configmap资源实例和depleyment资源实例进行同步操作。
[0087]
可以看出,通过上述同步方法可以将备份的颗粒度细化为资源实例级别,不需要对整个第一集群(kubernetes主集群)中的所有资源进行备份,可以根据用户需求确定具体的同步资源进行同步,不会影响其他资源的同步逻辑,使得同步更加灵活,并且通过处理模块handle的具体实现,可以针对不同类型的资源进行可定制的备份,减少了备份过程中的资源损耗。
[0088]
在一种实施方式中,还可以确定成功将所述至少一个资源事件同步至所述第二集群的情况下,更新同步进度信息,所述同步进度信息表示所述至少一个资源事件对应的同步状态信息。所述更新同步进度信息,包括:将所述同步进度信息更新至存储数据库中。
[0089]
在一个示例中,同步进度信息可以是用于表示资源事件发生事件前后的关系信息,具体地,同步进度信息可以是资源事件的版本号,例如,第一同步信息可以是版本号1,版本号2,其中,版本号1对应的资源事件在版本号2对应的资源事件之前发生,存储数据库可以是etcd组件,其中,etcd组件是一个高可用强一致性的服务发现存储数据库,可以负责保存各种资源的当前同步状态。
[0090]
在一个示例中,确定成功将所述至少一个资源事件同步至所述第二集群的情况下,更新同步进度信息,可以是确定成功将先发生的资源事件同步至第二集群后,对同步进度信息进行第一次更新,在确定成功将后发生的资源事件同步至第二集群后,对同步进度信息进行第二次更新,例如,对于资源事件a和资源事件b,其中资源事件a在资源事件b之前发生,可以是成功将资源事件a更新到第二集群后,将版本号1更新为版本号2,在成功将资源事件b更新到第二集群后,将版本号2更新为版本号3。
[0091]
将所述同步进度信息更新至存储数据库中的实现方式,可以是将资源事件的版本号更新至存储数据库中,例如,将版本号1更新到数据存储库中。
[0092]
在一种实施方式中,在所述同步组件重启的情况下,获取所述同步进度信息,根据所述同步进度信息,确定需要进行同步的资源事件。所述获取所述同步进度信息,可以是从所述存储数据库中获取所述同步进度信息。
[0093]
在一个示例中,在所述同步组件重启的情况下,获取所述同步进度信息,根据所述同步进度信息,确定需要进行同步的资源事件,可以是同步组件发生故障重启后,从存储数据库中获取资源事件的最新版本号,根据获取的最新版本号确定资源同步状态,进而确定需要进行同步的资源事件。具体地,资源事件a对应的第一同步信息为版本号5,且资源事件a由于同步组件发生故障未能将资源事件a同步到第二集群的情况,此时,存储数据库中的版本号应该为成功同步到第二集群的资源事件a对应的上一资源事件对应的版本号4,且对应的同步组件中的消息队列并不会删除未成功同步到第二集群的资源事件a对应的数据,同步组件重启后,会先从etcd组件中获取资源事件的最新版本号4,并通过处理模块handler重新从消息队列中获取资源事件a,并将资源事件a同步到第二集群,同时,对同步组件重启后所监测的资源事件进行顺序同步,如此,可以通过保存第一同步信息,使得重启后能够根据同步进度继续对同步事件进行同步,不会发生相同资源事件的反复同步。
[0094]
在一种实施方式中,在将所述至少一个资源事件同步至所述第二集群失败的情况下,可以控制所述同步组件重启。
[0095]
作为一种实施方式,在资源事件同步至第二集群失败时,可以根据同步失败的原因,在失败原因对应的解决方式是对同步组件进行重启的情况下,控制同步组件进行重启。具体地,可以在资源事件同步至第二集群失败时发出错误通知,这里不对发出错误通知的具体形式进行限定,可以通过语音提示、对话框显示等其它方式进行错误通知。
[0096]
图2为本发明实施例的kubernetes资源备份的架构示意图,如图2所示,主数据中心中的业务集群均是主集群,备份数据中心中的业务集群均是备份集群,且主数据中心中的主集群分别与备份数据中心中的备份集群相对应,同步组件可以监控主业务集群上的资源信息,并实现对备份集群的资源同步操作。
[0097]
图3为本发明实施例的同步组件的内部构架示意图,如图3所示,同步组件由监测模块、消息队列以及处理模块组成,其中,监测模块可以读取etcd组件中的同步进度信息,并监听主集群中资源信息,根据监控的资源信息确定生成资源事件时,将确定生成的资源事件进行格式转化,并将格式转化后的资源事件存放在内部的消息队列中,处理模块可以获取消息队列中格式转化后的资源事件,并对格式转化后的资源事件进行反序列化解析,根据解析结果将对应的资源事件同步到备份集群,并在成功将资源事件同步至备份集群的情况下,更新etcd组件中同步进度信息。
[0098]
图4为本发明实施例的同步组件的工作流程示意图,如图4所示,同步组件在启动时,会根据需要确定需要同步的资源确定对应的资源类型,根据资源类型的种类分别初始化各资源类型对应的监测模块和处理模块,在监测模块启动后,可以先从etcd组件中获取同步进度信息,并开始监控主集群中需要同步的资源对应的资源信息,当根据监控的资源信息确定生成资源事件时,会对生成的资源事件进行格式转化,并将格式转化后的资源事件放入消息队列中,然后监测模块将等待下一个资源事件的发生,而当监测模块出现监控
错误时,会从etcd组件中重新获取同步进度并开始新一次的监控,处理模块在启动后即开始等待消息队列中的资源事件,在获取到资源事件后对对资源事件进行反序列化解析,并将解析后的资源事件同步至备份集群,在成功将资源事件同步至备份集群的情况下,更新etcd组件中同步进度信息,当将资源事件同步至备份集群失败时,不更新etcd组件中同步进度信息,以便同步组件重启后能继续进行同步工作。
[0099]
在前述实施例提出的数据处理方法的基础上,本发明实施例提出了一种数据处理装置。
[0100]
图5为本发明实施例的数据处理装置的组成结构示意图,如图5所示,该装置可以包括:监控模块501和同步模块502,其中,
[0101]
所述监控模块501,用于实时监控第一集群上的资源信息,所述第一集群表示基于容器资源的主集群;
[0102]
所述同步模块502,用于根据所述资源信息确定是否生成至少一个资源事件,在确定生成至少一个资源事件的情况下,将所述至少一个资源事件同步至第二集群,所述资源事件表示因资源操作导致的资源变化信息,所述第二集群表示所述基于容器资源的主集群对应的备份集群。
[0103]
可选地,所述同步模块502用于将所述至少一个资源事件同步至第二集群,包括:
[0104]
在所述至少一个资源事件的个数大于1的情况下,按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件同步至第二集群。
[0105]
可选地,所述同步模块502用于按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件同步至第二集群,包括:
[0106]
按照所述至少一个资源事件发生的先后顺序将所述至少一个资源事件存储在消息队列中;
[0107]
从所述消息队列中按照所述先后顺序获取所述至少一个资源事件,并将获取的所述至少一个资源事件同步至所述第二集群。
[0108]
可选地,所述监控模块501用于实时监控第一集群上的资源信息,包括:
[0109]
确定同步资源类型,所述同步资源类型表示第一集群上需要进行监控的资源的类型;
[0110]
实时监控所述同步资源类型对应的资源信息。
[0111]
可选地,所述同步模块502还用于确定成功将所述至少一个资源事件同步至所述第二集群的情况下,更新同步进度信息,所述同步进度信息表示所述至少一个资源事件对应的同步状态信息。
[0112]
可选地,所述监控模块501用于实时监控第一集群上的资源信息包括:利用同步组件监控第一集群上的资源信息,所述监控模块还用于在所述同步组件重启的情况下,获取所述同步进度信息,根据所述同步进度信息,确定需要进行同步的资源事件。
[0113]
可选地,所述同步模块502用于更新同步进度信息,包括:将所述同步进度信息更新至存储数据库中,
[0114]
所述监控模块用于获取所述同步进度信息,包括:
[0115]
从所述存储数据库中获取所述同步进度信息。
[0116]
可选地,所述监控模块501还用于在将所述至少一个资源事件同步至所述第二集
群失败的情况下,控制所述同步组件重启。
[0117]
实际应用中,监控模块501和同步模块502可以利用电子设备中的处理器实现,上述处理器可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。
[0118]
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0119]
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0120]
具体来讲,本实施例中的一种数据处理方法对应的计算机程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与一种视频处理方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种数据处理方法。
[0121]
基于前述实施例相同的技术构思,参见图6,其示出了本发明实施例提供的一种电子设备,可以包括:存储器601和处理器602;其中,
[0122]
所述存储器601,用于存储计算机程序和数据;
[0123]
所述处理器602,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种数据处理方法。
[0124]
在实际应用中,上述存储器601可以是易失性存储器(volatile memory),例如ram;或者非易失性存储器(non-volatile memory),例如rom,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,并向处理器602提供指令和数据。
[0125]
上述处理器602可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的电子设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
[0126]
在一些实施例中,本发明实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
[0127]
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
[0128]
本技术所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0129]
本技术所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0130]
本技术所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0131]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0132]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1