一种Zookeeper集群维护方法、装置及电子设备、存储介质与流程

文档序号:33209820发布日期:2023-02-10 20:21阅读:31来源:国知局
一种Zookeeper集群维护方法、装置及电子设备、存储介质与流程
一种zookeeper集群维护方法、装置及电子设备、存储介质
技术领域
1.本技术涉及分布式集群技术领域,尤其涉及一种zookeeper集群维护方法、装置及电子设备、存储介质。


背景技术:

2.zookeeper是一个开放源码的分布式应用程序协调服务,通常会部署在多台机器上,即存在多个服务端,以此形成zookeeper集群,每个服务端上都会部署一定数量的znode节点,作为提供服务的基本单位。
3.实际业务场景下,由于各种业务需求的变化或者节点异常情况等的发生,需要对zookeeper集群中的znode节点执行各种适应性操作,例如为了应对业务量的增长,需要新增一定数量的znode节点以提供更多的服务能力等,或者对异常的znode节点进行及时删除操作,以避免对实际业务造成影响等。
4.然而发明人发现,现有技术需要用户登录到zookeeper集群中的每个服务端上分别进行单个znode节点的操作,导致znode节点运维时间较长,效率不高。


技术实现要素:

5.本技术实施例提供了一种zookeeper集群维护方法、装置及电子设备、存储介质,以提高zookeeper集群运维效率。
6.本技术实施例采用下述技术方案:
7.第一方面,本技术实施例提供一种zookeeper集群维护方法,由zookeeper集群控制服务器执行,其中,所述方法包括:
8.通过批量操作接口接收针对多个目标znode节点的批量操作请求,所述目标znode节点的批量操作请求中包括各目标znode节点的信息;
9.对所述批量操作请求中的各目标znode节点的信息进行校验;
10.根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作。
11.可选地,所述对所述批量操作请求中的各目标znode节点的信息进行校验包括:
12.根据所述目标znode节点的批量操作请求确定批量操作类型;
13.根据所述批量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验,得到所述校验结果。
14.可选地,所述根据所述批量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验包括:
15.根据各目标znode节点的信息,在znode节点信息数据库中进行匹配,得到匹配结果;
16.根据所述匹配结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果。
17.可选地,所述目标znode节点的信息包括目标znode节点的节点标识,所述根据各目标znode节点的信息,在znode节点信息数据库中进行匹配,得到匹配结果包括:
18.确定所述目标znode节点的节点标识是否能在所述znode节点信息数据库中找到;
19.若能,则确定所述匹配结果为匹配成功;
20.若不能,则确定所述匹配结果为匹配失败。
21.可选地,所述根据所述匹配结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果包括:
22.若所述匹配结果为匹配成功、且所述批量操作类型为批量删除操作,或者,所述匹配结果为匹配失败、且所述批量操作类型为批量增加操作,则确定所述校验结果为校验通过。
23.可选地,所述根据所述批量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验,得到所述校验结果包括:
24.将所述目标znode节点的批量操作请求转化为第一zookeeper四字命令;
25.通过所述第一zookeeper四字命令,与所述zookeeper集群所在的服务端建立通信连接,以获取服务端返回的结果;
26.根据所述服务端返回的结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果。
27.可选地,所述通过批量操作接口接收针对多个目标znode节点的批量操作请求包括:
28.根据预设参数格式配置批量操作接口,其中所述预设参数格式包括zookeeper四字命令的参数格式。
29.可选地,所述校验结果包括当前目标znode节点的信息的校验结果,所述根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作包括:
30.在所述当前目标znode节点的信息的校验结果为校验通过的情况下,确定对所述当前目标znode节点执行所述批量操作请求对应的批量操作并返回第一提示信息;
31.在所述当前目标znode节点的信息的校验结果为校验未通过的情况下,则直接返回第二提示信息;
32.其中,所述当前目标znode节点为多个目标znode节点中的任意一个。
33.可选地,所述方法还包括:
34.提供前端页面;
35.所述通过批量操作接口接收针对多个目标znode节点的批量操作请求包括:
36.通过所述前端页面调用所述批量操作接口,以通过所述批量操作接口接收所述批量操作请求。
37.可选地,所述方法还包括:
38.通过所述前端页面接收znode节点信息的查询请求;
39.将所述znode节点信息的查询请求转化为第二zookeeper四字命令;
40.通过所述第二zookeeper四字命令,与所述zookeeper集群所在的服务端建立通信连接,以获取服务端返回的查询结果;
41.接收所述服务端返回的查询结果。
42.可选地,所述znode节点信息数据库通过如下方式得到:
43.通过预设znode节点信息接收接口接收服务端的znode节点的信息;
44.对所述服务端的znode节点的信息进行格式化处理;
45.将格式化处理后的znode节点的信息存储到所述znode节点信息数据库中。
46.可选地,所述服务端的znode节点的信息还包括节点创建时间、节点版本号、父节点信息、子节点信息以及节点状态信息中的至少一种。
47.第二方面,本技术实施例还提供一种zookeeper集群维护装置,应用于zookeeper集群控制服务器,其中,所述装置用于实现前述之任一所述方法。
48.第三方面,本技术实施例还提供一种电子设备,包括:
49.处理器;以及
50.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述方法。
51.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述方法。
52.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本技术实施例的zookeeper集群维护方法可以由单独部署的zookeeper集群控制服务器来执行,在对zookeeper集群进行维护过程中,通过事先设置好的批量操作接口接收针对多个目标znode节点的批量操作请求,这里的目标znode节点的批量操作请求中包括各个目标znode节点的信息;之后对所述批量操作请求中的各目标znode节点的信息进行校验;最后根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作。相比于现有的需要用户登录到zookeeper集群中的每个服务端上分别进行单个znode节点的操作的方式来说,本技术实施例的zookeeper集群维护方法通过事先设置好的批量操作接口,满足了用户对zookeeper集群中的znode节点进行批量操作的需求,大大提高了zookeeper集群的运维效率;此外,通过对批量操作请求进行自动化参数校验,大大降低了人为误操作发生的概率。
附图说明
53.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
54.图1为本技术实施例中一种zookeeper集群维护方法的流程示意图;
55.图2为本技术实施例中一种zookeeper集群维护流程示意图;
56.图3为本技术实施例中一种zookeeper集群维护装置的结构示意图,
57.图4为本技术实施例中一种电子设备的结构示意图。
具体实施方式
58.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
59.以下结合附图,详细说明本技术各实施例提供的技术方案。
60.本技术实施例提供了一种zookeeper集群维护方法,由zookeeper集群控制服务器执行,如图1所示,提供了本技术实施例中一种zookeeper集群维护方法的流程示意图,所述方法至少包括如下的步骤s110至步骤s130:
61.步骤s110,通过批量操作接口接收针对多个目标znode节点的批量操作请求,所述目标znode节点的批量操作请求中包括各目标znode节点的信息。
62.本技术实施例的zookeeper集群维护方法可以由单独部署的zookeeper集群控制服务器来执行,在对zookeeper集群进行维护之前,先通过事先设置好的批量操作接口接收到目标znode节点的批量操作请求,也即本技术实施例的批量操作接口能够实现统一接收用户对zookeeper集群中的znode节点进行批量操作的请求的功能,进而可以避免需要用户登录到zookeeper集群中的每个服务端上分别进行单个znode节点的操作,提高了znode节点的维护效率。
63.由于zookeeper集群中的每一个服务端中都部署有一定数量的znode节点,因此这里的目标znode节点可以看作是所有znode节点中的任意多个。
64.目标znode节点的批量操作请求中具体可以包括各个目标znode节点的信息,如目标znode节点的节点名称等。
65.步骤s120,对所述批量操作请求中的各目标znode节点的信息进行校验。
66.在接收到目标znode节点的批量操作请求后,为了保证批量操作的准确性,需要对所述批量操作请求中的各目标znode节点的信息进行校验,这里的校验可以从两个维度来考量,一个是对批量操作请求中所携带的参数进行的合法性校验,另一个是对针对目标znode节点的批量操作请求的可行性进行校验。
67.当然除了上述这两个维度的校验,本领域技术人员也可以根据实际需求设置其他维度的校验,以确保后续对znode节点执行批量操作的准确性,提高批量操作成功的概率。
68.步骤s130,根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作。
69.由于在批量操作的场景下,目标znode节点有多个,因此在对目标znode节点的批量操作请求完成校验后,得到的是每一个目标znode节点的校验结果,之后再根据每一个目标znode节点的校验结果来确定是否可以对该目标znode节点执行相应的批量操作。
70.需要说明的是,本技术实施例的“批量操作”主要是针对用户操作而言的,相比于现有的需要用户登录到zookeeper集群中的每个服务端上分别进行单个znode节点的操作的方式来说,本技术实施例只需要用户一次性输入或者选择多个需要操作的znode节点即可,对用户更加友好,而具体的批量操作过程在本质上仍然是针对每一个znode节点分别执行的。
71.本技术实施例的zookeeper集群维护方法通过事先设置好的批量操作接口,满足了对zookeeper集群中的znode节点进行批量操作的需求,大大提高了zookeeper集群的运维效率;此外,通过对批量操作请求进行自动化参数校验,大大降低了人为误操作发生的概率。
72.在本技术的一个实施例中,所述对所述批量操作请求中的各目标znode节点的信息进行校验包括:根据所述目标znode节点的批量操作请求确定批量操作类型;根据所述批
量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验,得到所述校验结果。
73.如前所述,本技术实施例的目标znode节点的批量操作请求中还可以携带有批量操作类型这一参数,例如是对znode节点的批量增加操作,还是对znode节点的批量删除操作等,因此这里可以根据目标znode节点的批量操作请求来确定批量操作类型。
74.不同类型的批量操作对znode节点的批量操作请求的校验是有影响的,因此这里可以根据确定出的批量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验,进而得到校验结果。
75.在本技术的一个实施例中,所述根据所述批量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验,得到所述校验结果包括:根据各目标znode节点的信息,在znode节点信息数据库中进行匹配,得到匹配结果;根据所述匹配结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果。
76.本技术实施例在对批量操作请求中的各目标znode节点的信息进行校验时,可以先根据目标znode节点的信息,在事先构建好的znode节点信息数据库中进检索匹配,确定目标znode节点的信息是否可以在znode节点信息数据库中被找到,然后根据检索匹配的结果,结合批量操作请求中携带的批量操作类型,来确定批量操作请求的校验结果,进而确定批量操作请求的可行性。
77.上述znode节点信息数据库可以看作是用于存储和管理整个zookeeper集群中所有的znode节点信息的数据库,该znode节点信息数据库可以看作是本技术实施例的zookeeper集群控制服务器的一部分,当然也可以独立于zookeeper集群控制服务器而存在。
78.在本技术的一个实施例中,所述目标znode节点的信息包括目标znode节点的节点标识,所述根据各目标znode节点的信息,在znode节点信息数据库中进行匹配,得到匹配结果包括:确定所述目标znode节点的节点标识是否能在所述znode节点信息数据库中找到;若能,则确定所述匹配结果为匹配成功;若不能,则确定所述匹配结果为匹配失败。
79.本技术实施例在根据各目标znode节点的信息在znode节点信息数据库中进行匹配是,主要利用的是目标znode节点的节点标识如节点名称来进行匹配,该节点标识是每一个目标znode节点所具有的唯一标识,因此能够保证匹配结果的准确性。
80.在进行匹配时,可以在znode节点信息数据库中检索目标znode节点的节点标识,如果能够检索到,则认为是匹配成功,如果不能检索到,则认为是匹配失败。
81.实际应用场景下,用户输入的目标znode节点的节点标识可能不是完整的节点标识,例如用户想要操作的某一znode节点标识为“abc”,但用户仅仅输入了“ab”,那么此时可以通过模糊匹配的方式在znode节点信息数据库中检索到所有节点标识中包含“ab”的目标znode节点返回给用户,以便于用于进一步从中选择。
82.在本技术的一个实施例中,所述根据所述匹配结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果包括:若所述匹配结果为匹配成功、且所述批量操作类型为批量删除操作,或者,所述匹配结果为匹配失败、且所述批量操作类型为批量增加操作,则确定所述校验结果为校验通过。
83.实际应用场景下,针对znode节点的批量操作一般包括批量增加操作和批量删除
操作两种,批量增加操作即在服务端中一次性新增多个znode节点,批量删除操作即在服务端中一次性删除多个znode节点。
84.具体地,由于每个znode节点的节点名称都是唯一的,如果用户想要执行znode节点的批量增加操作,那么新增的znode节点的节点名称在znode节点信息数据库现有的数据中应该是匹配不到的,也即如果批量操作请求中携带的批量操作类型为批量增加操作,并且匹配结果为匹配失败,则说明用户发起的对该znode节点的新增请求是可行的,因此校验通过。同样地,如果用户想要执行znode节点的批量删除操作,那么待删除的znode节点的节点名称在znode节点信息数据库现有的数据中应该能够被匹配到的,也即如果批量操作请求中携带的批量操作类型为批量删除操作,并且匹配结果为匹配成功,则说明用户发起的对该znode节点的删除请求是可行的,因此校验通过。
85.反之,如果批量操作类型为批量增加操作,但匹配结果为匹配成功,说明用户想要新增的节点名称已经存在了,不能重复新增,因此得到的校验结果为校验未通过。同样地,如果批量操作类型为批量删除操作,但是匹配结果为匹配失败,说明用户想要删除的znode节点在现有的znode节点信息数据库中无法被找到,进而也就无法执行后续的批量删除操作,因此得到的校验结果也是校验未通过。
86.通过上述校验过程能够确保对znode节点执行批量操作的准确性,提高批量操作成功的概率,相比于人工执行的方法来说,降低了人为误操作的风险,且大大提高了操作效率。
87.在本技术的一个实施例中,所述根据所述批量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验,得到所述校验结果包括:将所述目标znode节点的批量操作请求转化为第一zookeeper四字命令;通过所述第一zookeeper四字命令,与所述zookeeper集群所在的服务端建立通信连接,以获取服务端返回的结果;根据所述服务端返回的结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果。
88.由于上述实施例的znode节点信息数据库中存储的数据通常是每隔一段时间进行一次刷新,而非实时更新的,因此znode节点信息数据库对于znode节点信息的变化的感知存在一定的延迟。也就是说,在服务端中的znode节点信息发生变化时,znode节点信息数据库并不能实时感知到,因此znode节点信息数据库中存储的znode节点信息有时候并不都是最新的znode节点信息。
89.考虑到上述问题,为了进一步保证校验结果的准确性,还可以采用获取实时的znode节点信息的方式来对批量操作请求进行校验。具体地,可以先将接收到目标znode节点的批量操作请求转化为第一zookeeper四字命令,zookeeper四字命令是zookeeper中用于支持获取节点服务状态和相关信息的命令,这些命令由四个字母构成,因此称为四字命令。当然,除了采用zookeeper四字命令的方式获取节点信息,也可以采用其他通信命令来获取,在此不作具体限定。
90.之后通过第一zookeeper四字命令,可以与zookeeper集群所在的服务端建立通信连接,进而可以接收到服务端返回的实时结果,具体可以包括服务端中当前存在的所有znode节点的信息等,这样根据服务端返回的实时结果以及批量操作请求中携带的批量操作类型,就可以确定对目标znode节点的批量操作请求的校验结果了,具体确定的方式可以
参照上述实施例中基于znode节点信息数据库进行校验的方式,在此不作赘述。
91.在本技术的一个实施例中,所述通过批量操作接口接收针对多个目标znode节点的批量操作请求包括:根据预设参数格式配置批量操作接口,其中所述预设参数格式包括zookeeper四字命令的参数格式。
92.本技术实施例在zookeeper集群控制服务器中配置了批量操作接口,该批量操作接口实现的功能是可以统一接收用户对zookeeper集群中的znode节点进行批量操作的请求,如批量删除znode节点,或者批量增加znode节点等。
93.批量操作接口中可以定义有与批量操作相关的各种参数,例如znode节点名称、znode节点类型以及批量操作类型等等,以使该批量操作接口能够通过接收批量操作请求来确定用户想要对哪些znode节点执行哪种类型的批量操作。
94.为了在上述实施例中对批量操作请求进行转化的过程中,提高转化效率和准确率,本技术实施例在配置批量操作接口时还可以基于zookeeper四字命令的参数格式进行配置,从而使得通过配置批量操作接口接收到的请求中所携带参数格式能够尽可能符合zookeeper四字命令的参数格式。
95.在本技术的一个实施例中,所述匹配结果中包括匹配的znode节点的信息,在根据所述目标znode节点的信息,在znode节点信息数据库中进行匹配之后,所述方法还包括:获取用户对所述匹配的znode节点的信息的选择结果并将所述选择结果展示给用户;接收所述用户对所述选择结果的确认指令;所述根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作包括:根据所述确认指令对相应的znode节点执行相应的批量操作。
96.如图2所示,提供了本技术实施例中一种zookeeper集群维护流程示意图,图2中的节点即指znode节点。实际应用场景下,用户可以通过两种方式来触发对目标znode节点的批量操作请求,一种是用户在查询到所有的znode节点信息后可以从中进行多项选择,然后将选择结果统一展示给用户,用户确认无误后再执行批量操作。另一种是用户可以输入完整或部分的znode节点名称,然后通过搜索所有与之匹配的节点名称并展示给用户,之后可以在用户进行选择之后将选择结果统一展示给用户,用户确认无误后再执行批量操作或者也可以直接执行批量操作。当然具体如何使用户触发批量操作请求并执行批量操作,本领域技术人员可以根据实际需求灵活设置,在此不一一例举。
97.在本技术的一个实施例中,所述校验结果包括当前目标znode节点的信息的校验结果,所述根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作包括:在所述当前目标znode节点的信息的校验结果为校验通过的情况下,确定对所述当前目标znode节点执行所述批量操作请求对应的批量操作并返回第一提示信息;在所述当前目标znode节点的信息的校验结果为校验未通过的情况下,则直接返回第二提示信息;其中,所述当前目标znode节点为多个目标znode节点中的任意一个。
98.目标znode节点的批量操作请求中涉及的目标znode节点有多个,在进行校验时,会对每一个目标znode节点的信息分别进行校验,进而可以得到每一个目标znode节点的信息校验结果。对于当前目标znode节点来说,如果其校验通过,说明当前目标znode节点满足批量操作的可行性要求,那么就可以对当前目标znode节点执行批量操作,同时可以返回当前目标znode节点的批量操作是否成功的提示信息。如果当前目标znode节点校验未通过,
说明当前目标znode节点不满足批量操作的可行性要求,那么就不能对其执行批量操作,因此可以返回该目标znode节点不能执行批量操作的提示信息。
99.需要说明的是,由于上述实施例是针对每一个目标znode节点分别进行的校验,因此可能会出现一次批量操作请求中有一部分目标znode节点满足可行性要求,一部分目标znode节点不满足可行性要求,但这并不影响“批量操作”的执行,因为就执行层面来说,“批量操作”本身还是针对每一个满足要求的znode节点分别执行的操作,批量与否仅是针对用户操作而言。
100.在本技术的一个实施例中,所述方法还包括:提供前端页面;所述通过批量操作接口接收针对多个目标znode节点的批量操作请求包括:通过所述前端页面调用所述批量操作接口,以通过所述批量操作接口接收所述批量操作请求。
101.为了提供信息的可视化能力,本技术实施例还提供了前端页面,即基于b/s模式(browser/server,浏览器/服务器)来实现zookeeper集群中的znode节点的维护,用户可以在前端页面上通过输入znode节点信息或者对znode节点信息进行选择等方式来调用批量操作接口,从而触发对多个目标znode节点的批量操作请求。
102.除此之外,还可以将目标znode节点的批量操作结果在前端页面上进行展示,例如可以展示哪些目标znode节点操作成功,哪些目标znode节点操作失败,哪些目标znode节点不满足操作要求等等,以便于用户及时进行后续处理。
103.在本技术的一个实施例中,所述方法还包括:通过所述前端页面接收znode节点信息的查询请求;将所述znode节点信息的查询请求转化为第二zookeeper四字命令;通过所述第二zookeeper四字命令,与所述zookeeper集群所在的服务端建立通信连接,以获取服务端返回的查询结果;接收所述服务端返回的查询结果。
104.除了可以实现上述实施例的目标znode节点的批量操作,本技术实施例还提供了znode节点的信息查询功能,首先用户可以在前端页面上通过点击按钮或者输入文本等方式触发znode节点信息的查询请求,然后将znode节点信息的查询请求经过参数校验等分析后转化为第二zookeeper四字命令,之后通过第二zookeeper四字命令与zookeeper集群所在的服务端进行交互,从而得到服务端返回的查询结果,最后将该查询结果返回给前端页面进行展示。
105.在本技术的一个实施例中,所述znode节点信息数据库通过如下方式得到:通过预设znode节点信息接收接口接收服务端的znode节点的信息;对所述服务端的znode节点的信息进行格式化处理;将格式化处理后的znode节点信息存储到所述znode节点信息数据库中。
106.现有技术中主要通过zookeeper四字命令获得zookeeper集群中每个服务端的信息,如运行状态、配置信息,以及一些服务统计信息如延时、收包发包数、连接数等,之后通过前端页面展示将这些信息给用户。
107.然而这种方式获取到的信息都是集群粒度的信息,并无法获取到znode节点粒度的信息,如节点名称、节点创建时间、节点版本号、父节点信息、子节点信息以及节点状态信息等,这就导致后续在对znode节点进行问题排查或者需要对znode节点执行批量操作时,无法依据现有的集群粒度的信息来实现了。
108.考虑到上述问题,本技术实施例构建了一个znode节点信息数据库,通过该znode
节点信息数据库来对节点粒度的信息如节点名称、节点创建时间、节点版本号以及父/子节点信息等进行统一管理和维护。
109.具体地,可以先事先设置一个znode节点信息接收接口,该znode节点信息接收接口可以看作是能够获取znode节点信息的接口,其中可以定义有不同维度的znode节点信息的参数。然后与zookeeper集群中的各服务端建立通信连接,通过上述znode节点信息接收接口可于接收到服务端上报的znode节点信息,由于不同服务端上报的信息的格式可能存在差异,因此这里可以对znode节点信息按照事先设定的数据存储要求进行格式化处理,最后将格式化处理后的znode节点信息存储到znode节点信息数据库中,由此完成znode节点信息数据库的构建。
110.基于该构建好的znode节点信息数据库,还可以为用户提供znode节点信息的查询功能,同时还可以相应地提供一个用于查询与展示znode节点信息的前端页面,用户在前端页面执行查询znode信息的操作后,将会触发znode信息查询请求,然后根据znode信息查询请求在znode节点信息数据库中进行检索匹配,得到对应的znode查询结果并在前端页面上进行展示。由此,用户即可得到znode节点粒度的信息,以便于用户后续定位问题发生的znode节点位置,进而提高发现问题原因和解决问题的效率,同时也便于后续对znode节点进行批量操作。
111.需要说明的是,虽然本技术各实施例中限定的是对znode节点执行批量操作,但是根据业务需求,也可能出现用户仅需要操作单个znode节点的情况。因此,在实际应用中,可以将批量操作接口设置为可接收单个znode节点的操作请求,使得当用户仅仅想要操作某一个znode节点时,同样可以利用本技术上述实施例中的技术方案,也即znode节点的数量并不会对本技术的应用范围造成影响。
112.本技术实施例还提供了一种zookeeper集群维护装置300,应用于zookeeper集群控制服务器,如图3所示,提供了本技术实施例中一种zookeeper集群维护装置的结构示意图,所述装置300包括:第一接收单元310、校验单元320和操作单元330,其中:
113.第一接收单元310,用于通过批量操作接口接收针对多个目标znode节点的批量操作请求,所述目标znode节点的批量操作请求中包括各目标znode节点的信息;
114.校验单元320,用于对所述批量操作请求中的各目标znode节点的信息进行校验;
115.操作单元330,用于根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作。
116.在本技术的一个实施例中,所述校验单元320具体用于:根据所述目标znode节点的批量操作请求确定批量操作类型;根据所述批量操作类型,对所述批量操作请求中的各目标znode节点的信息进行校验,得到所述校验结果。
117.在本技术的一个实施例中,所述校验单元320具体用于:根据各目标znode节点的信息,在znode节点信息数据库中进行匹配,得到匹配结果;根据所述匹配结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果。
118.在本技术的一个实施例中,所述目标znode节点的信息包括目标znode节点的节点标识,所述校验单元320具体用于:确定所述目标znode节点的节点标识是否能在所述znode节点信息数据库中找到;若能,则确定所述匹配结果为匹配成功;若不能,则确定所述匹配结果为匹配失败。
119.在本技术的一个实施例中,所述校验单元320具体用于:若所述匹配结果为匹配成功、且所述批量操作类型为批量删除操作,或者,所述匹配结果为匹配失败、且所述批量操作类型为批量增加操作,则确定所述校验结果为校验通过。
120.在本技术的一个实施例中,所述校验单元320具体用于:将所述目标znode节点的批量操作请求转化为第一zookeeper四字命令;通过所述第一zookeeper四字命令,与所述zookeeper集群所在的服务端建立通信连接,以获取服务端返回的结果;根据所述服务端返回的结果和所述批量操作类型,确定对所述批量操作请求中的各目标znode节点的信息的校验结果。
121.在本技术的一个实施例中,所述第一接收单元310具体用于:根据预设参数格式配置批量操作接口,其中所述预设参数格式包括zookeeper四字命令的参数格式。
122.在本技术的一个实施例中,所述校验结果包括当前目标znode节点的信息的校验结果,所述操作单元330具体用于:在所述当前目标znode节点的信息的校验结果为校验通过的情况下,确定对所述当前目标znode节点执行所述批量操作请求对应的批量操作并返回第一提示信息;在所述当前目标znode节点的信息的校验结果为校验未通过的情况下,则直接返回第二提示信息;其中,所述当前目标znode节点为多个目标znode节点中的任意一个。
123.在本技术的一个实施例中,所述装置还包括:提供单元,用于提供前端页面;所述第一接收单元310具体用于:通过所述前端页面调用所述批量操作接口,以通过所述批量操作接口接收所述批量操作请求。
124.在本技术的一个实施例中,所述装置还包括:第二接收单元,用于通过所述前端页面接收znode节点信息的查询请求;转化单元,用于将所述znode节点信息的查询请求转化为第二zookeeper四字命令;通信单元,用于通过所述第二zookeeper四字命令,与所述zookeeper集群所在的服务端建立通信连接,以获取服务端返回的查询结果;第三接收单元,用于接收所述服务端返回的查询结果。
125.在本技术的一个实施例中,所述znode节点信息数据库通过如下方式得到:通过预设znode节点信息接收接口接收服务端的znode节点的信息;对所述服务端的znode节点的信息进行格式化处理;将格式化处理后的znode节点的信息存储到所述znode节点信息数据库中。
126.在本技术的一个实施例中,所述服务端的znode节点的信息还包括节点创建时间、节点版本号、父节点信息、子节点信息以及节点状态信息中的至少一种。
127.能够理解,上述zookeeper集群维护装置,能够实现前述实施例中提供的由zookeeper集群控制服务器执行的zookeeper集群维护方法的各个步骤,关于zookeeper集群维护方法的相关阐释均适用于zookeeper集群维护装置,此处不再赘述。
128.图4是本技术的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
129.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa
(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
130.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
131.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成zookeeper集群维护装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
132.通过批量操作接口接收针对多个目标znode节点的批量操作请求,所述目标znode节点的批量操作请求中包括各目标znode节点的信息;
133.对所述批量操作请求中的各目标znode节点的信息进行校验;
134.根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操作。
135.上述如本技术图1所示实施例揭示的zookeeper集群维护装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
136.该电子设备还可执行图1中zookeeper集群维护装置执行的方法,并实现zookeeper集群维护装置在图1所示实施例的功能,本技术实施例在此不再赘述。
137.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中zookeeper集群维护装置执行的方法,并具体用于执行:
138.通过批量操作接口接收针对多个目标znode节点的批量操作请求,所述目标znode节点的批量操作请求中包括各目标znode节点的信息;
139.对所述批量操作请求中的各目标znode节点的信息进行校验;
140.根据校验结果确定是否对各目标znode节点执行所述批量操作请求对应的批量操
作。
141.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
142.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
143.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
144.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
145.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
146.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
147.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
148.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
149.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。
因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
150.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1