CN115460295B - 一种离群服务器恢复询问时间的确定方法、介质及设备 - Google Patents
一种离群服务器恢复询问时间的确定方法、介质及设备 Download PDFInfo
- Publication number
- CN115460295B CN115460295B CN202211110757.7A CN202211110757A CN115460295B CN 115460295 B CN115460295 B CN 115460295B CN 202211110757 A CN202211110757 A CN 202211110757A CN 115460295 B CN115460295 B CN 115460295B
- Authority
- CN
- China
- Prior art keywords
- server
- recovery
- abnormal
- time
- value
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
Abstract
本发明公开了一种离群服务器恢复询问时间的确定方法、介质及设备,应用于服务系统,服务系统包括多个服务器群,每一服务器群包括多个子服务器;当服务器群中至少一个子服务器处于异常状态且无法确定异常原因时,控制服务系统按照第一方法确定恢复询问时间。本发明中U1、U2分别表示第一预设规则及第二预设规则分别对应的平均恢复幅度与目标平均恢复幅度之间的差异大小。同时,选取U1、U2中最小值对应的预设规则作为目标规则,来生成当前的恢复询问时间。因此,可以从第一预设规则及第二预设规则中挑选出与服务器群适配性更高的预设规则作为目标规则。使得通过目标规则生成的恢复询问时间与异常服务器的实际恢复时间之间的适配性更高。
Description
技术领域
本发明涉及服务器离群恢复领域,特别是涉及一种离群服务器恢复询问时间的确定方法、介质及设备。
背景技术
在现有的微服务架构中,通常通过RPC(Remote Procedure Call,远程过程调用)来调用服务器中对应的服务来响应用户的服务请求。但是,在使用过程中可能会出现部分子服务器由于出现异常而无法响应的情况,此时若一直保留异常服务器在对应的服务器群中,则用户后续发出的服务请求,依然有较大的可能性被分配至异常服务器中,进而无法对服务请求进行响应。为了保证服务器群中保留的子服务器尽可能的为正常的子服务器,所以在检测到子服务器出现异常时,会将异常服务器从服务器群中摘除,并对摘除的子服务器进行修复。同时,为了保证服务器群对服务请求有较高的响应速度,则需要保证服务器群中具有的一定数量的正常的子服务器。所以在异常服务器被摘除后,需要在对应的时间对被摘除的子服务器进行异常恢复处理,并按照一定的询问频率询问所述异常服务器是否恢复正常,以便在被摘除的子服务器恢复正常状态时,将其及时拉回至对应的服务器群中。通常,确定的恢复询问时间与对应的异常服务器的实际恢复时间的一致性越高,越可以将异常服务器更及时拉回至对应的服务器群中,从而达到高效利用系统资源的效果。
现有技术中为了达到上述效果,通常根据被摘除的子服务器的异常原因对应的恢复时间,来更加有针对性的确定对应的恢复询问时间。但是,对于无法获知被摘除子服务器的异常原因的情况而言,现有技术中还不存在针对性地恢复询问时间的确定办法,导致了确定出的恢复询问时间与异常服务器的实际恢复时间之间的适配性较低的问题。
发明内容
针对上述技术问题,本发明采用的技术方案为:
根据本发明的一个方面,提供了一种离群服务器恢复询问时间的确定方法,应用于服务系统,服务系统包括多个服务器群,每一服务器群包括多个子服务器;
当服务器群中至少一个子服务器处于异常状态且无法确定异常原因时,控制服务系统按照第一方法确定恢复询问时间;第一方法包括如下步骤:
获取在第一历史时段中服务器群的异常恢复时长集A=(a1,a2,…,az),其中,ab为在第一历史时段中服务器群中的第b个异常恢复时长值,异常恢复时长值为子服务器每一次从异常状态再次恢复为正常状态之间的间隔时长;b=1,2,…,z,z为A中异常恢复时长值的总数量;
根据第一预设规则生成第一时长集Q=(q1,q2,…,qx),其中,qd=h1*d;qd为Q中的第d个时长值;d=1,2,…,x,x为Q中时长值的总数量;h1为第一时间系数。
根据第二预设规则生成第二时长集P=(P1,P2,…,Py),其中,Pe=h1*h2 e-1;Pe为P中的第e个时长值,e=1,2,…,y,y为P中时长值的总数量;h2为第二时间系数。
根据A及Q,分别确定q1,q2,…,qx对应的第一异常恢复值Q1,Q2,…,Qx,其中,Qd为qd对应的第一异常恢复值,Qd=Ld/z;其中,Ld为A中异常恢复时长值小于等于qd的数量。
根据A及P,分别确定P1,P2,…,Py对应的第二异常恢复值R1,R2,…,Ry,其中,Re为Pe对应的第二异常恢复值,Re=Ke/z;其中,Ke为A中异常恢复时长值小于等于Re的数量。
根据目标恢复范围[F1,F2]及Q1,Q2,…,Qx,确定Q对应的异常恢复变化幅值U1;U1=|[(F2-F1)/n1]-K6|;其中,n1为Q1,Q2,…,Qx中属于[F1,F2]的第一异常恢复值的数量;K6为变化阈值;F1为第一恢复阈值;F2为第二恢复阈值;F1<F2。
根据[F1,F2]及R1,R2,…,Ry,确定P对应的异常恢复变化幅值U2;U2=|[(F2-F1)/n2]-K6|;其中,n2为R1,R2,…,Ry中属于[F1,F2]的第二异常恢复值的数量。
如果N=U1,则将第一预设规则作为目标规则,否则,将第二预设规则作为目标规则,并根据目标规则生成当前的恢复询问时间;其中,N=min(U1,U2),min()为最小值函数,min(U1,U2)为U1和U2中的最小值。
根据本发明的第二个方面,提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的一种离群服务器恢复询问时间的确定方法。
根据本发明的第三个方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的一种离群服务器恢复询问时间的确定方法。
本发明至少具有以下有益效果:
本发明中在无法确定子服务器的异常原因时,先获取第一历史时段中异常服务器所在的服务器群的异常恢复时长集A。然后,再通过两种预设规则生成对应的第一时长集Q及第二时长集P。然后,通过A、Q及P,可以分别计算出在目标恢复范围内Q与P分别对应的异常恢复变化幅值U1与U2,如果N=U1,则将第一预设规则作为目标规则,否则,将第二预设规则作为目标规则,并根据目标规则生成当前的恢复询问时间。
通常随着时间的推移,服务器群中的异常服务器会逐渐的恢复正常,所以Q1,Q2,…,Qx或者R1,R2,…,Ry都是逐渐在增加,但是由于在服务器群恢复的初始阶段及末尾阶段,恢复的到正常的异常服务器数量变化不明显,所以通过设置目标恢复范围[F1,F2]来将初始阶段及末尾阶段去除,而主要对变化更为明显的中间阶段进行处理,由此,可以更加容易找到对应的服务器群的恢复询问时间的规律。
另外,本发明中(F2-F1)/n1表示以第一预设规则确定的恢复询问时间对服务器群进行恢复询问时的平均恢复幅度。同理,(F2-F1)/n2表示以第二预设规则确定的恢复询问时间对服务器群进行恢复询问时的平均恢复幅度。同时,K6可以为根据在实际使用场景中服务器群中异常服务器通常对应的目标平均恢复幅度。
由此,本发明中U1、U2分别表示第一预设规则及第二预设规则分别对应的平均恢复幅度与目标平均恢复幅度之间的差异大小。同时,选取U1、U2中最小值对应的预设规则作为目标规则,来生成当前的恢复询问时间。因此,可以从第一预设规则及第二预设规则中挑选出与服务器群适配性更高的预设规则作为目标规则。使得通过目标规则生成的恢复询问时间与异常服务器的实际恢复时间之间的适配性更高,进而达到高效利用系统资源的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种离群服务器恢复询问时间的确定方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的一个方面,提供了一种离群服务器恢复询问时间的确定方法,如图1所示,应用于服务系统,服务系统包括多个服务器群,每一服务器群包括多个子服务器;
当服务器群中至少一个子服务器处于异常状态且无法确定异常原因时,控制服务系统按照第一方法确定恢复询问时间;第一方法包括如下步骤:
步骤A100:获取在第一历史时段中服务器群的异常恢复时长集A=(a1,a2,…,az),其中,ab为在第一历史时段中服务器群中的第b个异常恢复时长值,异常恢复时长值为子服务器每一次从异常状态再次恢复为正常状态之间的间隔时长;b=1,2,…,z,z为A中异常恢复时长值的总数量。
第一历史时段可以为当前时间的前一周与前一个月。异常恢复时长值为子服务器每一次从异常状态再次恢复为正常状态之间的间隔时长;如某一子服务器从异常状态再次恢复为正常状态之间的间隔时长为0.3s,则对应的异常恢复时长值为0.3。由于A为异常服务器所在的服务器群在第一历史时段的异常恢复时长集,所以A中的异常恢复时长值可以大致反应出对应的服务器群中异常服务器从异常状态转变为正常状态所需要的时间长度的分布规律。
步骤A200:根据第一预设规则生成第一时长集Q=(q1,q2,…,qx),其中,qd=h1*d;qd为Q中的第d个时长值;d=1,2,…,x,x为Q中时长值的总数量;h1为第一时间系数。
步骤A300:根据第二预设规则生成第二时长集P=(P1,P2,…,Py),其中,Pe=h1*h2 e -1;Pe为P中的第e个时长值,e=1,2,…,y,y为P中时长值的总数量;h2为第二时间系数;对应的h1可以为0.5,h2可以为2。
本实施例中由第一预设规则生成第一时长集中的时长值之间具有线性变化规律。而由第二预设规则生成第二时长集中的时长值之间具有指数变化规律。由此,根据第一预设规则生成的恢复询问时间具有线性变化规律,根据第二预设规则生成的恢复询问时间具有指数变化规律。
步骤A400:根据A及Q,分别确定q1,q2,…,qx对应的第一异常恢复值Q1,Q2,…,Qx,其中,Qd为qd对应的第一异常恢复值,Qd=Ld/z;其中,Ld为A中异常恢复时长值小于等于qd的数量。
步骤A500:根据A及P,分别确定P1,P2,…,Py对应的第二异常恢复值R1,R2,…,Ry,其中,Re为Pe对应的第二异常恢复值,Re=Ke/z;其中,Ke为A中异常恢复时长值小于等于Re的数量。
每一第一异常恢复值表示A中异常恢复时长值小于等于Q中对应的时长值的数量与A中异常恢复时长值总数量之间的比值。由此,第一异常恢复值可以表示当恢复时长为由第一预设规则确定的每一时长值时,对应的服务器群中异常服务器恢复到正常状态的概率。同理,第二异常恢复值可以表示当恢复时长为由第二预设规则确定的每一时长值时,对应的服务器群中异常服务器恢复到正常状态的概率。
步骤A600:根据目标恢复范围[F1,F2]及Q1,Q2,…,Qx,确定Q对应的异常恢复变化幅值U1;U1=|[(F2-F1)/n1]-K6|;其中,n1为Q1,Q2,…,Qx中属于[F1,F2]的第一异常恢复值的数量;K6为变化阈值;F1为第一恢复阈值;F2为第二恢复阈值;F1<F2;K6可以根据具体的使用场景进行设置,优选的,K6∈[0.14,0.17],更优选的,K6=0.15。
步骤A700:根据[F1,F2]及R1,R2,…,Ry,确定P对应的异常恢复变化幅值U2;U2=|[(F2-F1)/n2]-K6|;其中,n2为R1,R2,…,Ry中属于[F1,F2]的第二异常恢复值的数量。
目标恢复范围也即表示对应的服务器群中异常服务器恢复到正常状态变化更为明显的中间阶段对应的范围。通常该范围可以设置为[0.2,0.9],也即,F1可以为0.2,F2可以为0.9。
在U1的计算过程中,(F2-F1)/n1可以表示在目标恢复范围内,以第一预设规则确定的恢复询问时间对对应的异常服务器进行恢复询问时,对应的平均变化幅度。同理,(F2-F1)/n2可以表示在目标恢复范围内,以第二预设规则确定的恢复询问时间对对应的异常服务器进行恢复询问时,对应的平均变化幅度。
K6可以表示目标平均恢复幅度,可以将多个服务器群在一个历史时段中在目标恢复范围内的所有平均变化幅度的平均值作为K6。
由此,本发明中U1、U2可以分别表示第一预设规则及第二预设规则分别对应的平均恢复幅度与目标平均恢复幅度之间的差异大小。
步骤A800:如果N=U1,则将第一预设规则作为目标规则,否则,将第二预设规则作为目标规则,并根据目标规则生成当前的恢复询问时间;其中,N=min(U1,U2),min()为最小值函数,min(U1,U2)为U1和U2中的最小值。
以目标恢复范围为[0.2,0.9],h1=0.5,h2=2,K6=0.15为例,对本实施例进行解释说明:
某服务器群的A中的各异常恢复时长值的数量在A中异常恢复时长值总数量的占比如下:
异常恢复时长值在0.5s以内的占比为0.2;异常恢复时长值在1s以内的占比为0.25;异常恢复时长值在2s以内的占比为0.4;异常恢复时长值在2.5s以内的占比为0.6;异常恢复时长值在3s以内的占比为0.8;异常恢复时长值在3.5s以内的占比为0.9;异常恢复时长值在4s以内的占比为0.92;异常恢复时长值在5s以内的占比为0.94;异常恢复时长值在8s以内的占比为0.95;异常恢复时长值在9s以内的占比为0.96;
在该情况下,Q对应的n1=7,对应的U1=|[(0.9-0.2)/7]-0.15|=0.05;
P对应的n2=3,对应的U2=|[(0.9-0.2)/3]-0.15|=0.083;
n2=3也可以表明由第二预设规则生成的恢复询问时间在目标恢复范围内只会进行3次恢复询问,同理,由第一预设规则生成的恢复询问时间在目标恢复范围内会进行7次恢复询问。在该情况中,第二预设规则对应的恢复询问的次数相对于第一预设规则对应的恢复询问的次数更少,由此第二预设规则对应的平均变化幅度更大,也即每两次恢复询问之间的间隔更长,不利于将恢复至正常状态的子服务器及时拉回至对应的服务器群中。由此,会选择第一预设规则生成对应的当前异常恢复处理对应的恢复询问时间。
由此,选取U1、U2中最小值对应的预设规则作为目标规则,来生成当前的恢复询问时间。可以从第一预设规则及第二预设规则中挑选出与服务器群适配性更高的预设规则作为目标规则。使得通过目标规则生成的恢复询问时间与异常服务器的实际恢复时间之间的适配性更高,进而达到高效利用系统资源的目的。
作为本发明一种可能的实施例,当目标规则为第一预设规则时,步骤A800包括如下子步骤:
步骤A801:根据第一预设规则及当前异常恢复处理对应的开启时间Ty,确定多个恢复询问时间E1,E2,…,Et,Eg满足如下条件:
Eg=Ty+h1*g;
其中,Eg为第g个恢复询问时间,g=1,2,…,t,t为恢复询问时间的总数量。
具体的,以第一预设规则为目标规则为例进行说明,如:根据第一预设规则生成第一时长集Q=(0.5,1,1.5,2,2.5,3),则生成的当前异常恢复处理对应的恢复询问时间分别为0.5+Ty、1+Ty、1.5+Ty、2+Ty、2.5+Ty、3+Ty,其中,Ty为异常恢复处理的对应的开启时间,具体的,可以根据使用场景进行自行设定,如每隔3小时开启一次异常恢复处理。
同理,当目标规则为第二预设规则时,Eg=Ty+h1*h2 g-1。
作为本发明一种可能的实施例,在步骤A800:根据目标规则生成当前的恢复询问时间之后,本方法还包括:
步骤A810:根据目标规则对应生成的时长集中的每一异常恢复值V1,V2,…,Vw及F2,确定每一异常恢复值V1,V2,…,Vw对应的第一接近值W1,W2,…,Ww,其中,Wf为Vf对应的第一接近值,Vf为目标规则对应生成的时长集中的第f个异常恢复值;f=1,2,…,w,w为目标规则对应生成的时长集中异常恢复值总数量;Wf=|F2-Vf|。
步骤A820:将min(W1,W2,…,Ww)对应的异常恢复值作为第一目标异常恢复值;其中,min(W1,W2,…,Ww)为W1,W2,…,Ww中的最小值。
步骤A830:根据第一目标异常恢复值在目标规则对应生成的时长集中对应的时长值,生成恢复询问上限时间。
进一步的,在步骤A800:根据目标规则生成当前的恢复询问时间之后,本方法还包括:
步骤A840:根据目标规则对应生成的时长集中的每一异常恢复值V1,V2,…,Vw及F1,确定每一异常恢复值V1,V2,…,Vw对应的第二接近值X1,X2,…,Xw,其中,Xj为Vj对应的第二接近值,Vj为目标规则对应生成的时长集中的第j个异常恢复值;j=1,2,…,w;Xj=|F1-Vj|。
步骤A850:将min(X1,X2,…,Xw)对应的异常恢复值作为第二目标异常恢复值;其中,min(X1,X2,…,Xw)为X1,X2,…,Xw中的最小值。
步骤A860:根据第二目标异常恢复值在目标规则对应生成的时长集中对应的时长值,生成恢复询问下限时间。
由于在实际使用过程中,异常恢复处理中的恢复询问时间在增大或减小至一定程度时便不再发生变化,也即恢复询问时间会存在恢复询问上限时间及恢复询问下限时间。本发明中将异常恢复值中与F2最接近的异常恢复值对应的时长值生成恢复询问上限时间,同时,将异常恢复值中与F1最接近的异常恢复值对应的时长值生成恢复询问下限时间。
通过本实施例可以确定出一个具有有限范围的恢复询问时间序列。当时间到达恢复询问下限时间时开始进行第一次恢复询问,当时间到达恢复询问上限时间后,进行最后一次恢复询问。由于,在实际的使用过程中异常服务器的异常恢复时长值符合正态分布。所以,本实施例中通过恢复询问下限时间及恢复询问上限时间确定出的恢复询问时间序列,可以将绝大部分的恢复到正常状态的异常服务器及时拉回至对应的服务器群中。同时对不在该恢复询问时间序列范围内恢复到正常状态的极少数异常服务器不再进行异常恢复处理。由此,既可以保证有较多的恢复至正常状态的服务器可以被及时拉回至对应的服务器群中,同时也减小了异常恢复处理的持续时间,进而提高了异常恢复处理的效率。
作为本发明的一种可能的实施方式,每一服务器群用于响应同种类型的服务请求,不同的服务器群用于响应不同类型的服务请求,每一服务器群包括多个子服务器,每一服务器群中的子服务器均用于响应服务器群对应的服务请求;每一服务器群对应一个调用列表及一个隔离列表;隔离列表用于存放服务器群中无法对服务请求进行响应的子服务器的设备标识;调用列表用于存放服务器群中对服务请求进行正常响应的子服务器的设备标识。
具体的,当用户发起的一个服务请求被分配至对应的服务器群时,该服务器群会根据自身预设的请求分配策略将服务请求分配至本服务器群对应的调用列表中对应的子服务器中,对应的子服务器根据获得的服务请求进行响应。请求分配策略可使用现有的请求分配策略,如哈希一致分配策略或随机分配策略。本发明中用户每发起一次服务请求,对应的服务器群就会对应地产生一次调用。
步骤S1:控制服务系统中的每一服务器群均按照第二方法运行,以摘除任一服务器群中出现异常的子服务器,第二方法包括如下步骤:
步骤S10:根据服务器群对应的请求访问频率PL,确定服务器群对应的目标时间窗口的时段长度L,L满足如下条件:
L=k1/PL;
其中,k1为第一系数,k1∈[10,300]。
步骤S20:根据L,确定目标时间窗口的滑动步长B,B满足如下条件:
B=L/k2;
其中,k2为第二系数,k2∈[2,5]。
本实施例中的L及B均与PL有关,具体的,PL越大对应的L越小,且对应的B越小。由此,请求访问频率较高的服务器群,对应的目标时间窗口的数量更多且时段长度更短,由此,可以对具有较高的请求访问频率的服务器群进行更加密集的异常检测。通常,较高的请求访问频率可以说明对应的服务器群处于更加繁忙的使用场景中,而在此场景中用户对于服务器群的失败响应感受更加突出,也更加敏感,所以在此场景中对服务器群成功响应服务请求有着较高的要求。所以通过对服务器群进行更加密集的异常检测,可以及时摘除服务器群中出现异常的子服务器,进而保证具有较高的请求访问频率的服务器群,具有较高的对服务请求成功响应的机率,提高用户的使用体验。
对应的,请求访问频率较低的服务器群,对应的目标时间窗口的数量更少且时段长度更长,由此,可以对具有较低的请求访问频率的服务器群进行较为稀疏的异常检测。通常,较低的请求访问频率可以说明对应的服务器群处于空闲的使用场景中,而在此场景中用户发出的服务请求数量少,且间隔时间长。通常,由于大多数子服务器会配置对应的自修复程序,当首次对服务请求响应失败后,会启动对应的自修复程序进行自动修复。且自动修复的时间长度一般小于两次服务请求的间隔时间长。由此,一些子服务器在第一次响应失败后,会进行自我修复,通常在下一次再接收到服务请求时,可以进行正常响应。所以较为稀疏的异常检测对处于空闲的使用场景中的服务器群中的子服务器而言,不仅可以留出较多的时间让子服务器进行自我修复,以提高子服务器被修复的成功率。而且,可以降低计算量,进而减少对计算资源的占用。
步骤S30:每当目标时间窗口按照B完成一次滑动后,统计当前目标时间窗口确定的时间段内服务器群中每一子服务器的调用次数D1,D2,…,Df(v)及服务器群中每一子服务器的调用失败次数d1,d2,…,df(v),其中,Dm为服务器群中第m个子服务器的调用次数,dm为服务器群中第m个子服务器的调用失败次数,m=1,2,…,f(v);f(v)为当前目标时间窗口确定的时间段内服务器群中对服务请求进行响应的子服务器的总数量,v为目标时间窗口的滑动次数,v≥0。
步骤S40:当D>Y1时,对服务器群中的子服务器进行异常判定处理。其中,D=D1+D2+...+Df(v)为当前目标时间窗口确定的时间段内服务器群的总调用次数;Y1为调用阈值,Y1满足如下条件:
Y1=k3*k1;
其中,k3为第三系数,k3∈[1.1,3]。
具体的,当前目标时间窗口确定的时间段内服务器群的总调用次数小于调用阈值,也即表明服务器群处于正常的运行状态,无需进行异常判定处理。而当服务器群中的子服务器出现异常无法响应时,对于同一条服务请求会对子服务器发起多次调用,由此会导致D迅速增加,进而超过调用阈值。在此情况下需要进行异常判定处理。
步骤S50:将异常判定处理确定出的异常服务器对应的设备标识从对应的调用列表移动至隔离列表中。
具体的,当异常判定处理结束后,将通过异常判定处理确定出来的所有的异常服务器对应的设备标识从对应的调用列表移动至隔离列表中。移动完成后,调用列表中剩余的设备标识为该服务器群后续在进行服务请求分派时对应设备标识。在后续的服务请求分派工作中,该服务器群对应的请求分配模块会根据预设的请求分配策略,将服务请求分配至新的调用列表中对应的设备标识代表的子服务器中。每一次异常判定处理结束后均会更新服务器群对应的调用列表中剩余的设备标识,以生成新的调用列表。设备标识可以为每一子服务器对应的设备序列号。
异常判定处理包括:
步骤S41:根据D1,D2,…,Df(v)及d1,d2,…,df(v),确定每一子服务器对应的异常值s1,s2,…,sf(v),其中,sm为dm对应的子服务器的异常值;sm满足如下条件:
sm=dm/Dm。
步骤S42:当sm>Y2时,确定sm对应的子服务器为异常服务器;其中,Y2为第一异常阈值。
Y2可以根据实际的使用场景进行自行设置,如Y2=0.6。
优选的,Y2满足如下条件:
Y2=PL/k4。
其中,k4>PL,k4为第四系数。
本实施例中,Y2与PL成正相关,通常该Y2的设置方式,更加适合用于使用哈希一致分配策略的服务器群。由于,哈希一致分配策略具体为将服务请求分配至具有与目标哈希值相同哈希值的子服务器中,所以,在服务器群中会存在至少一个子服务器相对于其他的子服务器具有更高的异常值,且该异常值也与PL成正相关。所以,将Y2设置为与PL成正相关,可以使不同的服务器群也具有与自身更加贴合的第一异常阈值。由此,可以提高异常判定处理的判定精度。
作为本发明一种可能的实施例,在步骤S42:确定sm对应的子服务器为异常服务器之前,异常判定处理还包括:
步骤S420:获取服务系统中每一服务器群在第二时段内的第一请求访问频率G1,G2,…,Gu,其中,Gc为服务系统中第c个服务器群在第二时段内的第一请求访问频率。c=1,2,…,u。u为服务系统中服务器群的总数量。
步骤S421:根据G1,G2,…,Gu,确定服务系统在第二时段内的第二请求访问频率G,G满足如下条件:
G=k5*max(G1,G2,…,Gu)。
其中。max()为最大值函数。max(G1,G2,…,Gu)为G1,G2,…,Gu中的最大值。k5为第五系数。k5>1。优选的,k5∈[1.1,3]。
步骤S422:将G作为k4。
通常在一个服务系统中不同的服务器群也会对应不同的第一请求访问频率。所以,对于使用哈希一致分配策略的各个服务器群中的异常服务器的错误率的增长速度也不同。将Y2设置为与P成正相关,可以使不同的服务器群也具有与自身更加贴合的第一异常阈值。由此,可以提高异常判定处理的判定精度。
另外,本实施例中G=k4,且G与max(G1,G2,…,Gu)正相关,由于,k4的值是以服务系统中在第二时段内最高的请求访问频率为参考计算出来的。所以,使得由k4计算出的Y2与本服务系统中的每一个服务器群的贴合性更高。也可以避免人为设定k4的过程中,由于缺少参考而使得设定的k4太大或太小,进而导致Y2的值与每一个服务器群的贴合性较低的情况,从而进一步提高异常判定处理的判定精度。
作为本发明一种可能的实施例,服务器群中的多个子服务器随机对服务器群对应的服务请求进行响应。对应的异常判定处理替换为:
本实施例更加适用于使用随机分配策略的服务器群。也即,服务请求被分派至服务器群中的每个子服务器的概率相同。
步骤S41:根据D1,D2,…,Df(v)及d1,d2,…,df(v),确定每一子服务器对应的异常值s1,s2,…,sf(v),其中,sm为dm对应的子服务器的异常值:
步骤S43:当sm>Y3时,确定sm对应的子服务器为异常服务器;其中,Y3为第二异常阈值;Y3满足如下条件:
Y3=∑f(v) m=1dm/D。
本实施例中,由于使用的是随机分派的策略,所以,服务器群中的每一个子服务器获得的服务请求的数量基本一致。通常来说,每一个子服务器出现异常概率也相同,所以,将Y3设置为服务器群平均每次调用出现调用失败的概率。由于,服务器群中大部分的子服务器为正常的,所以Y3会大于正常的子服务器对应的异常值,且Y3小于异服务器对应的异常值。由此,可以更加准确的将服务器群中的异常服务器判定出来,进而可以提高异常判定处理的判定精度。
作为本发明一种可能的实施例,方法还包括:
步骤S2:在第i次确定服务器群中的子服务器为异常服务器时,确定当前服务器群对应的摘除比例值Qi,Qi满足如下条件:
Qi=1-ei/n。
其中,ei为在第i次确定子服务器为异常服务器时,服务器群对应的调用列表中剩余的正常的子服务器的数量。
步骤S3:当Qi>Y3时,停止对服务器群中的子服务器进行异常判定处理。
本实施例中,在进行异常判定处理的过程中,每次判定对应的子服务器为异常服务器之后,都要计算摘除比例值,当摘除比例值达到摘除比例上限时,也即当Qi>Y3时,则停止对服务器群中的子服务器进行异常判定处理。通常Y3会根据具体的使用场景进行自行设置,如Y3=0.3。
通常一个服务器群中的子服务器被摘除后,由于服务器群中剩余的子服务器数量减少,会增加剩余的子服务器的服务压力。当服务器群中剩余的子服务器数量低于一定阈值时,整个服务器群中的子服务器会由于服务压力超过阈值而崩溃,进而导致整个服务器群无法使用。在该情况下,摘除异常服务器会比保留异常服务器对整个服务器群造成的不利影响更大。所以,通过本实施例可以保证每一个服务器群中剩余的子服务器的数量均会在一个阈值之上,进而保证整个服务器群不会出现崩溃的情况。
作为本发明一种可能的实施例,当前目标时间窗口确定的时间段属于第二时段。
在步骤S10:根据服务器群的请求访问频率PL,确定服务器群对应的目标时间窗口的时段长度L之前,方法还包括:
步骤S01:获取服务器群在第一时段T1内的请求访问总量W1。
步骤S02:根据T1及W1,确定在第一时段内服务器群的请求访问频率P1,P1满足如下条件:
P1=W1/T1。
步骤S03:将P1作为第二时段内服务器群的请求访问频率P2。其中,第一时段在时间顺序上早于第二时段。
步骤S04:将P2作为当前目标时间窗口确定的时间段内的服务器群的请求访问频率P。
本是实施例中,第一时段在时间顺序上早于第二时段,也即第一时段为第二时段的历史时段。由于,服务器群的请求访问频率在时间上具有一定的重复相似性,也即每一个时间周期内服务器群的请求访问频率基本相同。如,8月份服务器群的请求访问频率的变化和9月份服务器群的请求访问频率基本一致。所以,可以通过服务器群在历史时段中的平均请求访问频率,也即P1,来代表服务器群在当前时段中请求访问频率,也即P2。
第一时段及第二时段可以根据具体的使用场景进行确定,如第一时段可以为第二时段的前一个月的时段。具体的,第一时段可以为8月对应的时段,第二时段可以为9月对应的时段。
作为本发明一种可能的实施例,方法还包括:
步骤S4:根据第二时段中的最晚时间Tr及当前目标时间窗口确定的时间段中的最晚时间Tc1,确定时段更新值E,E满足如下条件:
E=Tr-Tc1。
步骤S5:当E<B时,对第二时段进行时段更新处理。时段更新处理包括:
步骤S51:将当前目标时间窗口确定的时间段中的最早时间Tc2,确定为更新后的第二时段的起始时间J1。
步骤S52:根据J1及第二时段的时段长度H,确定更新后的第二时段的终止时间J2,J2满足如下条件:
J2=J1+H。
步骤S53:根据J1及J2,确定更新后的第二时段对应的时间段。
本实施例主要是第二时段的更新方法。具体为,当E<B时,将原来的第二时段在时间上向后平移,直至将原来的第二时段的起始时间移动至与当前目标时间窗口确定的时间段的起始时间相同的位置即可。当第二时段更新后,对应的,第一时段也会按照第二时段向后移动的量进行同等程度的移动,以对应更新第一时段所在的时间段。如,第二时段向后平移了28天得到了更新后的第二时段,则第一时段也会同样向后平移28天得到了更新后的第一时段。通过对第一时段及第二时段的自动更新,保证了对应获取的数据均为最靠近当前目标时间窗口确定的时间段的数据。由此可以更加准确的反应出实际的情况,进而可以进一步提高异常判定处理的判定精度。
作为本发明一种可能的实施例,异常判定处理替换为:
步骤S41:根据D1,D2,…,Df(v)及d1,d2,…,df(v),确定每一子服务器对应的异常值s1,s2,…,sf(v)。
步骤S44:获取服务器群中每一子服务器在第二历史时段中的摘除次数H1,H2,…,Hf(v),其中,Hm为服务器群中第m个子服务器在第二历史时段中的摘除次数;第二历史时段在时间上早于当前目标时间窗口确定的时间段;第二历史时段可以与第一历史时段相同。
步骤S45:根据H1,H2,…,Hf(v),确定服务器群中每一子服务器在当前目标时间窗口确定的时间段内对应的异常判定阈值Y1,Y2,…,Yf(v),其中,Ym为服务器群中第m个子服务器在当前目标时间窗口确定的时间段内对应的异常判定阈值;Ym=Hm*Y2/Avg(H1,H2,…,Hf(v));其中,Avg()为均值函数;Avg(H1,H2,…,Hf(v))为H1,H2,…,Hf(v)的平均数。
步骤S46:当sm>Ym时,确定sm对应的子服务器为异常服务器。
本实施例中将服务器群中每一子服务器在当前目标时间窗口确定的时间段内对应的异常判定阈值与对应的子服务器在第二历史时段中的摘除次数H1,H2,…,Hf(v)进行关联。具体为,Ym=Hm*Y2/Avg(H1,H2,…,Hf(v)),由此,使得每一子服务器在当前目标时间窗口确定的时间段内对应的异常判定阈值与对应的子服务器在第二历史时段中的摘除次数呈正相关。当子服务器在第二历史时段中具有较高的摘除次数时,可以说明该子服务器在每次被摘除之后还能够及时恢复至正常状态,并重新回到对应的调用列表中。对于该种情况发生的原因可能是该子服务器具有较强的自我修复能力或者是异常判定处理发生了误判。所以,本实例中将每一子服务器在当前目标时间窗口确定的时间段内对应的异常判定阈值设置为与对应的摘除次数正相关,可以减少异常判定处理出现误判概率。
本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例还提供一种计算机程序产品,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。
Claims (9)
1.一种离群服务器恢复询问时间的确定方法,其特征在于,应用于服务系统,所述服务系统包括多个服务器群,每一所述服务器群包括多个子服务器;
当所述服务器群中至少一个所述子服务器处于异常状态且无法确定异常原因时,控制所述服务系统按照第一方法确定恢复询问时间;所述第一方法包括如下步骤:
获取在第一历史时段中所述服务器群的异常恢复时长集A=(a1,a2,…,az),其中,ab为在第一历史时段中所述服务器群中的第b个异常恢复时长值,所述异常恢复时长值为所述子服务器每一次从异常状态再次恢复为正常状态之间的间隔时长;b=1,2,…,z,z为A中所述异常恢复时长值的总数量;
根据第一预设规则生成第一时长集Q=(q1,q2,…,qx),其中,qd=h1*d;qd为Q中的第d个时长值;d=1,2,…,x,x为Q中时长值的总数量;h1为第一时间系数;
根据第二预设规则生成第二时长集P=(P1,P2,…,Py),其中,Pe=h1*h2 e-1;Pe为P中的第e个时长值,e=1,2,…,y,y为P中时长值的总数量;h2为第二时间系数;
根据A及Q,分别确定q1,q2,…,qx对应的第一异常恢复值Q1,Q2,…,Qx,其中,Qd为qd对应的第一异常恢复值,Qd=Ld/z;其中,Ld为A中异常恢复时长值小于等于qd的数量;
根据A及P,分别确定P1,P2,…,Py对应的第二异常恢复值R1,R2,…,Ry,其中,Re为Pe对应的第二异常恢复值,Re=Ke/z;其中,Ke为A中异常恢复时长值小于等于Re的数量;
根据目标恢复范围[F1,F2]及Q1,Q2,…,Qx,确定Q对应的异常恢复变化幅值U1;U1=|[(F2-F1)/n1]-K6|;其中,n1为Q1,Q2,…,Qx中属于[F1,F2]的第一异常恢复值的数量;K6为变化阈值;F1为第一恢复阈值;F2为第二恢复阈值;F1<F2;
根据[F1,F2]及R1,R2,…,Ry,确定P对应的异常恢复变化幅值U2;U2=|[(F2-F1)/n2]-K6|;其中,n2为R1,R2,…,Ry中属于[F1,F2]的第二异常恢复值的数量;
如果N=U1,则将所述第一预设规则作为目标规则,否则,将所述第二预设规则作为目标规则,并根据所述目标规则生成当前的恢复询问时间;其中,N=min(U1,U2),min()为最小值函数,min(U1,U2)为U1和U2中的最小值;
当所述目标规则为第一预设规则时,根据所述目标规则生成当前的恢复询问时间包括:
根据第一预设规则及当前异常恢复处理对应的开启时间Ty,确定多个恢复询问时间E1,E2,…,Et,Eg满足如下条件:
Eg=Ty+h1*g;
其中,Eg为第g个恢复询问时间,g=1,2,…,t,t为恢复询问时间的总数量;
当目标规则为第二预设规则时,Eg满足如下条件:Eg=Ty+h1*h2 g-1。
2.根据权利要求1所述的方法,其特征在于,在根据所述目标规则生成当前的恢复询问时间之后,所述方法还包括:
根据所述目标规则对应生成的时长集中的每一异常恢复值V1,V2,…,Vw及F2,确定每一所述异常恢复值V1,V2,…,Vw对应的第一接近值W1,W2,…,Ww,其中,Wf为Vf对应的第一接近值,Vf为所述目标规则对应生成的时长集中的第f个异常恢复值;f=1,2,…,w,w为所述目标规则对应生成的时长集中异常恢复值总数量;Wf=|F2-Vf|;
将min(W1,W2,…,Ww)对应的异常恢复值作为第一目标异常恢复值;其中,min(W1,W2,…,Ww)为W1,W2,…,Ww中的最小值;
根据所述第一目标异常恢复值在所述目标规则对应生成的时长集中对应的时长值,生成恢复询问上限时间。
3.根据权利要求1所述的方法,其特征在于,在根据所述目标规则生成当前的恢复询问时间之后,所述方法还包括:
根据所述目标规则对应生成的时长集中的每一异常恢复值V1,V2,…,Vw及F1,确定每一所述异常恢复值V1,V2,…,Vw对应的第二接近值X1,X2,…,Xw,其中,Xj为Vj对应的第二接近值,Vj为所述目标规则对应生成的时长集中的第j个异常恢复值;j=1,2,…,w;Xj=|F1-Vj|;
将min(X1,X2,…,Xw)对应的异常恢复值作为第二目标异常恢复值;其中,min(X1,X2,…,Xw)为X1,X2,…,Xw中的最小值;
根据所述第二目标异常恢复值在所述目标规则对应生成的时长集中对应的时长值,生成恢复询问下限时间。
4.根据权利要求1所述的方法,其特征在于,每一所述服务器群用于响应同种类型的服务请求,每一所述服务器群中的子服务器均用于响应所述服务器群对应的服务请求;每一所述服务器群对应一个调用列表及一个隔离列表;所述隔离列表用于存放所述服务器群中无法对服务请求进行响应的子服务器的设备标识;所述调用列表用于存放所述服务器群中对服务请求进行正常响应的子服务器的设备标识;
控制所述服务系统中的每一服务器群均按照第二方法运行,以摘除任一所述服务器群中出现异常的子服务器,所述第二方法包括如下步骤:
根据所述服务器群对应的请求访问频率PL,确定所述服务器群对应的目标时间窗口的时段长度L,L=k1/PL;其中,k1为第一系数,k1∈[10,300];
根据L,确定所述目标时间窗口的滑动步长B,B=L/k2;其中,k2为第二系数,k2∈[2,5];
每当所述目标时间窗口按照B完成一次滑动后,统计当前所述目标时间窗口确定的时间段内所述服务器群中每一子服务器的调用次数D1,D2,…,Df(v),及所述服务器群中每一子服务器的调用失败次数d1,d2,…,df(v),其中,Dm为所述服务器群中第m个子服务器的调用次数,dm为所述服务器群中第m个子服务器的调用失败次数,m=1,2,…,f(v);f(v)为当前所述目标时间窗口确定的时间段内所述服务器群中对服务请求进行响应的子服务器的总数量,v为目标时间窗口的滑动次数,v≥0;
当D>Y1时,对所述服务器群中的子服务器进行异常判定处理;
其中,D=D1+D2+...+Df(v)为当前所述目标时间窗口确定的时间段内所述服务器群的总调用次数;Y1为调用阈值,Y1=k3*k1;其中,k3为第三系数,k3∈[1.1,3];
将所述异常判定处理确定出的异常服务器对应的设备标识从对应的所述调用列表移动至所述隔离列表中;
所述异常判定处理包括:
根据D1,D2,…,Df(v)及d1,d2,…,df(v),确定每一子服务器对应的异常值s1,s2,…,sf(v),其中,sm为dm对应的子服务器的异常值;sm=dm/Dm;
当sm>Y2时,确定sm对应的所述子服务器为异常服务器;其中,Y2为第一异常阈值。
5.根据权利要求4所述的方法,其特征在于,所述异常判定处理替换为:
根据D1,D2,…,Df(v)及d1,d2,…,df(v),确定每一子服务器对应的异常值s1,s2,…,sf(v),其中,sm为dm对应的子服务器的异常值;sm=dm/Dm;
获取所述服务器群中每一所述子服务器在第二历史时段中的摘除次数H1,H2,…,Hf(v),其中,Hm为所述服务器群中第m个所述子服务器在第二历史时段中的摘除次数;所述第二历史时段在时间上早于当前所述目标时间窗口确定的时间段;
根据H1,H2,…,Hf(v),确定所述服务器群中每一所述子服务器在当前所述目标时间窗口确定的时间段内对应的异常判定阈值Y1,Y2,…,Yf(v),其中,Ym为所述服务器群中第m个所述子服务器在当前所述目标时间窗口确定的时间段内对应的异常判定阈值;Ym=Hm*Y2/Avg(H1,H2,…,Hf(v));其中,Avg()为均值函数;Avg(H1,H2,…,Hf(v))为H1,H2,…,Hf(v)的平均数;
当sm>Ym时,确定sm对应的所述子服务器为异常服务器。
6.根据权利要求4所述的方法,其特征在于,Y2满足如下条件:
Y2=PL/k4;
其中,k4>PL,k4为第四系数。
7.根据权利要求4所述的方法,其特征在于,所述服务器群中对服务请求进行响应的子服务器随机对所述服务器群对应的服务请求进行响应;所述异常判定处理替换为:
根据D1,D2,…,Df(v)及d1,d2,…,df(v),确定每一子服务器对应的异常值s1,s2,…,sf(v),其中,sm为dm对应的子服务器的异常值;
当sm>Y3时,确定sm对应的所述子服务器为所述异常服务器;其中,Y3为第二异常阈值;Y3满足如下条件:
Y3=∑f(v) m=1dm/D。
8.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种离群服务器恢复询问时间的确定方法。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种离群服务器恢复询问时间的确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110757.7A CN115460295B (zh) | 2022-09-13 | 2022-09-13 | 一种离群服务器恢复询问时间的确定方法、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110757.7A CN115460295B (zh) | 2022-09-13 | 2022-09-13 | 一种离群服务器恢复询问时间的确定方法、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115460295A CN115460295A (zh) | 2022-12-09 |
CN115460295B true CN115460295B (zh) | 2023-03-31 |
Family
ID=84303045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211110757.7A Active CN115460295B (zh) | 2022-09-13 | 2022-09-13 | 一种离群服务器恢复询问时间的确定方法、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115460295B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6191691B2 (ja) * | 2013-06-28 | 2017-09-06 | 日本電気株式会社 | 異常検出装置、制御方法、及びプログラム |
CN111104260B (zh) * | 2019-12-30 | 2023-04-14 | 北京三快在线科技有限公司 | 服务升级的监测方法、装置、服务器及存储介质 |
CN115016976B (zh) * | 2022-08-08 | 2022-11-25 | 深圳壹师城科技有限公司 | 一种根因定位方法、装置、设备及存储介质 |
-
2022
- 2022-09-13 CN CN202211110757.7A patent/CN115460295B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115460295A (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857592B (zh) | 数据恢复控制方法、服务器及存储介质 | |
CN111953772B (zh) | 请求处理方法、装置、服务器及存储介质 | |
CN115460296B (zh) | 一种基于rpc的离群摘除方法、存储介质及电子设备 | |
CN115460295B (zh) | 一种离群服务器恢复询问时间的确定方法、介质及设备 | |
CN112511368A (zh) | 一种服务心跳监控方法及相关装置 | |
CN108255703B (zh) | 一种sql脚本的故障修复方法及其终端 | |
CN112037873A (zh) | 一种基于集群选主和共识机制的单点优化方法 | |
US20200106666A1 (en) | Dynamic server allocation for automated server builds | |
CN112954008B (zh) | 一种分布式任务处理方法、装置、电子设备及存储介质 | |
CN115032994A (zh) | 一种无人船编队的领航员重选举方法、装置及存储介质 | |
CN113032188B (zh) | 确定主服务器的方法、装置、服务器及存储介质 | |
CN111694850B (zh) | 物流电子面单的单号回收方法及系统、设备及存储介质 | |
CN114564281A (zh) | 容器调度方法、装置、设备及存储介质 | |
CN113206891B (zh) | 元数据上报的调度方法、存储系统、调度装置及存储介质 | |
US11681576B2 (en) | Anomaly coping support apparatus, method, and program | |
CN116881052B (zh) | 一种分布式存储的数据修复系统 | |
CN113342499B (zh) | 分布式任务调用方法、装置、设备、存储介质、程序产品 | |
CN112306720B (zh) | 业务系统集群管理方法 | |
US20220382623A1 (en) | Information processing system, method, and apparatus | |
CN114942839A (zh) | 一种处理定时任务的方法、装置、存储介质及电子设备 | |
CN117608482A (zh) | 缓存镜像管理方法、装置、设备及计算机可读存储介质 | |
CN110990134B (zh) | 一种智能任务调度的方法、装置、计算机设备及存储介质 | |
CN116896483A (zh) | 一种数据保护系统 | |
CN114707653A (zh) | 一种数据处理方法、装置及电子设备 | |
CN116594799A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |