一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

网络服务器集群可用性监测方法及系统与流程

2022-04-27 09:14:29 来源:中国专利 TAG:


1.本发明属于网络服务器集群技术领域,尤其涉及一种基于多监测节点投票机制的网络服务器集群可用性监测方法及系统。


背景技术:

2.对于网络服务器集群来说,可用性监测系统往往与负载均衡系统和自动伸缩系统进行联动。监测系统发现集群中某些节点异常时,对这些异常节点进行标记,负载均衡系统根据异常节点标记信息,自动将异常节点从服务节点中排除,避免用户的请求提交到异常节点而无法得到正确的响应,自动伸缩系统根据异常节点标记信息和负载均衡系统提供的集群负载信息,自动评估:是否需要为集群扩容某种类型的服务器,或释放部分不需要的服务器。所以,监测系统对整个服务器集群来说至关重要,如果监测系统发生故障或误报,无法提供有效信息或提供了错误信息给负载均衡和自动伸缩系统,则会直接导致网络服务器集群提供的服务质量和可用性下降。
3.目前,对网络服务器工作状态的监测主要是使用单个监测节点或通过多个流量代理服务器进行监测,如专利cn104993953a公开的检测网络服务状态的方法和装置中,就是通过设置代理服务器进行检测,但是,采用单一监测节点准确率有限,尤其是单一节点易出现故障,容错率不高,另外,采用多个流量代理服务器监测,不具备自动处理监测节点本身故障或误报的能力,健壮性不足:监测节点发生故障时一般需要人工对故障进行确认,并且需要人工对故障进行处置,这要求监测系统需要安排专人进行24小时值守,在可靠性和自动化程度上不能满足网络服务器集群高可用性需求。


技术实现要素:

4.基于现有技术存在的不足,本发明的目的是,提供一种网络服务器集群可用性监测方法及系统,以解决原有的网络服务器集群状态监测出现的准确率不高、自动化程度不高的问题。
5.本发明采用的技术方案如下:
6.一种网络服务器集群可用性监测方法,包括:
7.各监测节点接收监测控制服务器发送的目标集群的服务节点列表;
8.对服务节点列表中的所有服务节点进行可用性检测,并将检测结果发送给监测控制服务器;
9.每等待一个统计周期,统计不同的监测节点对各服务节点的可用性投票结果,形成投票统计结果列表;
10.根据所述投票统计结果列表对某服务节点的可用率进行计算以确定该服务节点的可用性。
11.进一步地,对所述可用性投票结果的统计包括:
12.遍历所有监测节点,取该监测节点最近一次的检测结果;
13.如该检测结果的完成时间距离本次投票统计时间大于等于一个统计周期,则认为该监测节点没有有效的投票,继续检查下一个监测节点;
14.如该检测结果的完成时间距离本次投票统计时间小于一个统计周期,则认为该监测节点进行过有效投票;
15.遍历所有的检测结果,将各监测节点对某服务节点的可用性投票结果记录到对应的服务节点的投票统计结果列表中;
16.依次完成对所有服务节点的可用性投票结果形成列表集合。
17.进一步地,确定所述服务节点的可用性包括:
18.遍历所述列表集合,根据如下公式计算每一个服务节点对应的投票统计结果列表的可用率,
19.其中,vn为对某服务节点的有效投票总数,ri为某次的有效投票,ri=0或1,i为监测区域编号;
20.其中,若an大于等于预设的阈值,判定该服务节点可用,若an小于预设的阈值,则判定该服务节点不可用。
21.进一步地,获取服务节点的可用性检测结果包括:
22.先对服务节点列表中的所有服务节点进行第一轮可用性检测,得到第一轮检测结果集合;
23.检查筛选第一轮检测结果集合,得到不可用服务节点列表;
24.若所述不可用服务节点列表不为空,则对所述不可用服务节点列表中的服务节点进行第二轮检测,得到第二轮检测结果集合;
25.将所述第二轮检测结果集合中的值更新到原第一轮检测结果集合中,形成发送给所述监测控制服务器的最终的检测结果。
26.进一步地,为每一个监测节点设定检测周期,当距离上次检测完成时间大于等于检测周期的时长时或从未进行过检测时,开始启动本次的服务节点的可用性检测,并将检测结果及本次检测的结束时间发送给监测控制服务器,若发送失败,则每间隔一个时间段再次尝试发送,当尝试时间大于等于检测周期时,放弃本次检测结果的发送,其中,设定投票结果的统计周期的时长大于检测周期的时长。
27.进一步地,所述方法还包括,将所述服务节点的可用性投票结果发送给负载均衡系统和/或自动伸缩系统,所述负载均衡系统根据结果来选择可用的服务节点来处理用户的请求,摒弃不可用的服务节点;所述自动伸缩系统根据结果定位到不可用的服务节点,并将该不可用的服务节点进行释放或扩容。
28.进一步地,所述的监测节点部署在访问量大的请求来源地区,其中,每个地区部署至少两台监测节点。
29.进一步地,各监测节点异步进行检测任务并异步发送检测结果至所述监测控制服务器。
30.本发明的另一方面,还提供了一种网络服务器集群可用性监测的系统,,该系统包括:
31.服务节点信息获取模块,用于获取从监测控制服务器发送的目标集群的服务节点列表;
32.可用性检测模块,用于对服务节点列表中的所有服务节点进行可用性检测,并将检测结果发送给监测控制服务器;
33.投票结果统计模块,用于在每一个统计周期内,统计不同的监测节点对各服务节点的可用性投票结果,形成投票统计结果列表;
34.可用性判断模块,用于根据所述投票统计结果列表对某服务节点的可用率进行计算以确定该服务节点的可用性。
35.进一步地,该系统还包括:
36.结果收发模块,用于将投票统计结果及可用性判断结果发送给服务器集群的负载均衡系统和/或自动伸缩系统,并接收所述负载均衡系统和/或自动伸缩系统的调节指令,对不可用的服务节点进行调节。
37.与现有技术相比,本发明所提供的一种网络服务器集群可用性监测方法及系统,具有如下技术效果;
38.1、具备自动处理监测节点故障或误报的能力,对少数监测节点故障或误报的情况有很高的容错能力,不会影响集群的正常服务,不需要立即进行人工介入,尤其是对常见的局部网络质量抖动造成的部分监测节点偶尔异常,本发明相对现有技术具有明显的优势。
39.2、相对单一监测节点和使用多个流量代理服务器的单一监测节点,本发明具有更高的健壮性,准确率和自动化程度。
40.3、维护简单,只需要增加各个地区的监测节点数量,便可有效的提升监测系统和集群的健壮性和检测结果的准确率。
41.4、更高的检测结果准确率对负载均衡系统更有价值,能帮助负载均衡系统选择可用的服务节点,避免将异常服务节点用于处理用户请求,从而帮助提升集群的服务质量。
42.5、更准确的检测结果能够让自动伸缩系统更高效的运作,使自动伸缩系统能够更准确的定位到不可用服务节点,及时将其进行释放,并合理的扩容,从而让集群在保证服务质量的同时能够以更优的成本运行。
附图说明
43.图1是本发明实施例的网络服务器集群可用性监测方法的流程示意图。
44.图2是本发明实施例的网络服务器集群可用性监测系统的结构原理图。
具体实施方式
45.以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。如在说明书及权利要求当中使用了某些词汇来指称特定部件。本领域技术人员应可理解,硬件或软件制造商可能会用不同名词来称呼同一个部件。本说明书及权利要求并不以名称的差异来作为区分部件的方式,而是以部件在功能上的差异来作为区分的准则。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
46.下面结合附图和具体实施例对本发明做进一步详细说明。
47.图1为本发明实施例提供的一种网络服务器集群可用性监测方法的流程示意图,参照图1所述,该方法包括步骤;
48.步骤s101、各监测节点接收监测控制服务器发送的目标集群的服务节点列表。
49.假设目标网络服务器集群由n台服务节点构成,编号为n(n≥n≥1)的服务节点表示为pn,所有服务节点列表以集合形式表示为,所有服务节点列表以集合形式表示为
50.其中,监测节点优先选择部署于访问服务器频次高、访问量较大的地区,事先对访问目标网络服务器集群的请求来源地区进行统计分类,假设有m个访问量较大的请求来源地区,则在该m个地区分布设置监测节点,每个地区设置两个及以上的监测节点较佳,以便为该地区的监测系统提供足够的健壮性,监测节点对硬件性能一般要求不高,故可以使用低配置的机器,如2核2gb内存的服务器。某一个监测节点可表示为s
(i,j)
,s意为scanner,表示监测节点,下标i表示地区编号,1≤i≤m,下标j表示该地区的监测节点编号,1≤j,例如地区3的第一个监测节点表示为:s
(3,1)
,地区18的第5个监测节点表示为:s
(18,5)

51.在本发明的示例性实施例中,监测控制服务器c设置在目标网络服务器集群中,监测控制服务器c的作用主要是:1、面向监测节点s
(i,j)
提供网络接口服务:其提供两个接口,其中一个接口getlistnodep,用于向监测节点返回目标集群的所有服务节点列表另一个接口updatelistvote,用于接收监测节点s
(i,j)
发送的检测结果;2、向负载均衡和自动伸缩系统提供监测信息,也即将最后统计的可用性检测结果发送给负载均衡系统和自动伸缩系统,供它们对监测节点服务器提供进一步的处理措施。
52.在本发明的示例性实施例中,监测节点s
(i,j)
具备如下性质:1、各监测节点s
(i,j)
之间相互独立的工作,互不影响,即使其中一部分监测节点出现故障也不会影响其他监测节点;2、监测节点异步的进行检测任务,检测完成后将结果异步发送至监测控制服务器c,监测控制服务器c不需要阻塞等待监测节点,按序接收检测结果;3、同一个地区可以设置多个监测节点,互不影响;4、由于存在多个监测节点且采用投票机制,单个监测节点的监测结果不会直接影响集群的正常服务。
53.步骤s102、对服务节点列表中的所有服务节点进行可用性检测,并将检测结果发送给监测控制服务器。
54.以单个节点服务器为例,每个监测节点s
(i,j)
的工作流程包括如下:
55.一、设定检测周期的时长为ts,当某监测节点s
(i,j)
距离上次检测完成时间≥ts或从未进行过检测,则开始本次的检测。
56.二、向监测控制服务器c的网络接口getlistnodep发送请求,获取目标集群的服务节点列表信息,监测控制服务器c收到请求后,向对应的监测节点返回服务节点列表
57.三、监测节点对服务节点列表中的所有服务节点进行第一轮可用性检测,得到第一轮检测结果的集合r={r
(i,j,1)
,r
(i,j,2)
…r(i,j,n)
};其中,r
(i,j,n)
表示监测节点s
(i,j)
对服务节点pn的可用性检测结果,如果r
(i,j,n)
=1表示s
(i,j)
认为pn可用,如果r
(i,j,n)
=0表示s
(i,j)
认为pn不可用。第一轮检测结果的集合r中为所有监测节点对某服务节点的可用性检测,并分别以数字1、0表示可用和不可用两种结果。
58.四、再次检查和筛选r,得到不可用服务节点列表将集合r中的不可用结果筛选出来,得到一个新的列表并对内的集合进行判断,如果不为空,则对中的服务节点进行第二轮可用性检测,得到第二轮检测结果r',用r'中的结果对应更新r,形成最终的检测结果;通过检查筛选,对第一次检测为不可用的服务节点再次进行二轮检测,以减小监测节点服务器偶发故障导致检测出的误差。
59.五、将最终的更新后的检测结果发送至监测控制服务器。其中,发送给监测控制服务器的信息包括最终的检测结果r和本次检测的结束时间。
60.六、如果发送失败,则等待一段间隔时间(如3秒)再次进行尝试,直至发送成功为止,如果在设定的不断尝试发送时间内持续发送但仍未发送成功,当尝试时间≥ts(一个检测周期时长),放弃本次检测结果,直接开始下一次的检测过程。
61.步骤s103、每等待一个统计周期,统计不同的监测节点对各服务节点的可用性投票结果,形成投票统计结果列表。
62.其中,本发明实施例中的投票是指当监测控制服务器c的网络接口updatelistvote成功接收到监测节点s
(i,j)
发送的检测结果r后,对于r
(i,j,n)
∈r,则认为s
(i,j)
完成一次对pn可用性的投票r
(i,j,n)

63.监测控制服务器c的工作流程如下:
64.一、设定投票统计周期的时长tv,其中,应使得统计周期tv大于检测周期时长ts,如此确保在投票统计时,所有监测节点都有可能完成检测并发送结果,较佳的,可设置tv=1.5
×
ts。
65.二、每等待一个tv,监测控制服务器c开始本次的投票统计,投票统计记录形式为:将不同的监测节点对pn进行的投票记录到vn中,形成vn的结果集合。例如三个监测节点s
(1,1)
,s
(2,1)
,s
(3,1)
对p
127
进行了投票,则v
127
={r
(1,0,127)
,r
(2,0,127)
,r
(3,1,127)
}。
66.三、遍历所有的监测节点,取其中距离该监测节点最近的一次检测结果进行判断,如该检测结果的完成时间距离本次投票统计时间大于等于一个统计周期,则认为该监测节点没有有效的投票,继续检查下一个监测节点;如该检测结果的完成时间距离本次投票统计时间小于一个统计周期,则认为该监测节点进行过有效投票,正常记录。以其中一个监测节点s
(i,j)
为例,取s
(i,j)
最近一次的检测结果r:如果r的完成时间距离本次投票统计时间≥tv,则认为s
(i,j)
没有有效的投票,跳过s
(i,j)
,检查下一个监测节点;反之认为s
(i,j)
进行过有效投票,遍历r将r
(i,j,n)
∈r的值记录到对应的pn的投票统计结果列表vn中。
67.四、遍历所有的检测结果,将各监测节点对某服务节点的可用性投票结果记录到对应的服务节点的投票统计结果列表中。
68.对认定为进行过有效投票的结果进行查找,遍历r将r
(i,j,n)
∈r的值记录到对应的pn的投票统计结果列表vn中。
69.五、依次完成对所有服务节点的可用性投票结果形成列表集合。
70.完成上述所有遍历,得到
71.步骤s104、根据所述投票统计结果列表对某服务节点的可用率进行计算以确定该服务节点的可用性。
72.特别值得注意的是,目标集群中的服务节点列表中的服务节
点可能随着时间发生改变,一些服务节点可能被删除了,或者增加了新的服务节点;而各个监测节点是相互独立的进行工作,并且各个监测节点部署位置的网络环境和硬件条件可能存在差异,进而使得各个监测节点开始和完成检测所需要的时间也存在差异;所以各个监测节点从监测控制服务器c网络接口getlistnodep获取的目标集群所有服务节点列表因为获取时间不同,也存在差异。因此,对于任意两个服务节点pn和pm的投票统计结果列表vn和vm的长度不一定相同,也不一定由相同的一组监测节点产生。
73.作为本发明一个优选的实施方式,还对投票后的统计结果进行可用率检测和分析,并最终确定某服务节点的可用性。
74.其中,确定所述服务节点的可用性包括:
75.遍历列表集合根据如下公式计算每一个服务节点pn对应的投票统计结果列表vn的可用率,
76.其中,vn为对某服务节点pn的有效投票总数,ri为某次的有效投票,ri=0或1,i为监测区域编号;
77.其中,若an大于等于预设的阈值,阈值一般设置为0.5,即超过半数,判定该服务节点可用,若an小于预设的阈值(如0.5),则判定该服务节点不可用,需要超过一半数量的检测过pn的监测节点的有效投票才认为pn不可用,如此能保证投票结果的准确性,进而保证服务节点有效性判断的精确性。采用投票机制,使得本技术具备自动处理监测节点故障或误报的能力,对少数监测节点故障或误报的情况有很高的容错能力,不会影响集群的正常服务,不需要立即进行人工介入,尤其是对常见的局部网络质量抖动造成的部分监测节点偶尔异常,本发明相对现有技术具有明显优势。而且,该方式维护简单,只需要增加各个地区的监测节点数量,便可有效的提升监测系统和集群的健壮性和检测结果的准确率。
78.在本发明的一个示例性实施例中,对某服务节点的投票统计结果及可用率分析结果还发送给服务器集群的负载均衡系统和自动伸缩系统。由于监测节点对目标集群中的服务节点存在异常的进行了统计和标记,负载均衡系统根据异常节点标记信息,自动将异常节点从服务节点中排除,避免用户的请求提交到异常节点而无法得到正确的响应;自动伸缩系统根据异常节点标记信息和负载均衡系统提供的集群负载信息,自动评估:是否需要为集群扩容某种类型的服务器,或释放部分不需要的服务器。通过本发明实施例中的监测方法,能够对服务节点的有效性进行准确判断,更高的检测结果准确率对负载均衡系统更有价值,能帮助负载均衡系统选择可用的服务节点,避免将异常服务节点用于处理用户请求,从而帮助提升集群的服务质量。更准确的检测结果也能够让自动伸缩系统更高效的运作,使自动伸缩系统能够更准确的定位到不可用服务节点,及时将其进行释放,并合理的扩容,从而让集群在保证服务质量的同时能够以更优的成本运行。
79.下面以一个提供计算服务的网络服务器集群为例;
80.假设该目标网络服务器集群在深圳某数据中心部署了100台服务器作为服务节点;
81.假设目标集群90%以上的主要用户集中在6个地区,分别进行编号:深圳(编号1),广州(编号2),上海(编号3),北京(编号4),重庆(编号5),苏州(编号6);
82.在上述6个主要用户活跃的地区分别部署监测节点,每个地区部署2台监测节点以便为监测系统提供足够的健壮性,并在深圳部署监测控制服务器,则监测系统共计13台服务器;
83.其中,各地区的监测节点对硬件性能要求不高,可以使用低配置的机器,如2核2gb内存的服务器;
84.设置检测周期ts=120,统计周期tv=180,单位为秒;
85.常见场景下,大部分监测节点正常工作,并且大部分服务节点正常工作,假设部分监测节点出现了以下故障:
86.一、部署在上海(编号3)的两台监测节点s
(3,1)
和s
(3,2)
因机房故障而停机,则s
(3,1)
和s
(3,2)
会停止投票,之前已经成功发送到监测控制服务器的检测结果在经过一段时间后≥tv则会被视为无效投票;
87.二、部署在苏州(编号6)的一个监测节点s
(6,1)
因为所在机房网络异常抖动,可能会持续60秒无法访问位于深圳的目标集群,这会导致s
(6,1)
产生误报:虽然s
(6,1)
能向监测控制服务器发送检测结果,但是s
(6,1)
对所有目标集群中的服务节点的投票均为“不可用”;
88.则对于服务节点p
97
的投票统计v
97
={r
(1,1,97)
=1,r
(1,2,97)
=1,r
(2,1,97)
=1,r
(2,2,97)
=1,r
(4,1,97)
=1,r
(4,2,97)
=1,r
(5,1,97)
=1,r
(5,2,97)
=1,r
(6,1,97)
=0,r
(6,2,97)
=1}计算可用率因此最终判定p
97
为“可用”,具有更高的容错率和更高的健壮性;
89.从上述示例可以看出,在3台监测节点发生不同程度故障或产生误报的情况下,本发明所提供的监测方法依然能对集群做出可靠且准确的可用性判断。
90.本发明的另一实施例提供了一种网络服务器集群可用性监测的系统,该系统包括:服务节点信息获取模块201、可用性检测模块202、投票结果统计模块203、可用性判断模块204。其中,
91.服务节点信息获取模块201,用于获取从监测控制服务器发送的目标集群的服务节点列表;
92.可用性检测模块202,用于对服务节点列表中的所有服务节点进行可用性检测,并将检测结果发送给监测控制服务器;
93.投票结果统计模块203,用于在每一个统计周期内,统计不同的监测节点对各服务节点的可用性投票结果,形成投票统计结果列表;
94.可用性判断模块204,用于根据所述投票统计结果列表对某服务节点的可用率进行计算以确定该服务节点的可用性。
95.在本发明的一个实施例中,该系统还包括:结果收发模块205,用于将投票统计结果及可用性判断结果发送给服务器集群的负载均衡系统和/或自动伸缩系统,便于负载均衡系统和/或自动伸缩系统作出判断,以及接收所述负载均衡系统和/或自动伸缩系统的调节指令,通过监测控制服务器对不可用的服务节点进行调节,包括摒弃、释放或添加等操作。
96.关于本实施例中的网络服务器集群可用性监测的系统的具体限定可以参见上文中对于网络服务器集群可用性监测的方法的限定,在此不再赘述。上述网络服务器集群可用性监测系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可
以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
97.值得注意的是,以上所述仅为本发明的较佳实施例,并非因此限定本发明的专利保护范围,本发明还可以对上述各种零部件的构造进行材料和结构的改进,或者是采用技术等同物进行替换。故凡运用本发明的说明书及图示内容所作的等效结构变化,或直接或间接运用于其他相关技术领域均同理皆包含于本发明所涵盖的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献