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

一种服务器处理方法、装置、电子设备及计算机可读介质与流程

2022-09-15 05:50:33 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种服务器处理方法、装置、电子设备及计算机可读介质。


背景技术:

2.目前,主流的熔断组件,可以通过线程隔离的形式,及时熔断当前请求出问题的服务器,主流的熔断组件,熔断、隔离当前请求后,服务器的实例仍然在线,仍然可以被客户端访问到。如果是由于服务器自身原因(磁盘坏块、cpu降频、超卖等)造成的性能变差,即使熔断了当前请求,下一次访问请求仍然超时。此时向上游返回的是非正常结果,对业务有损。


技术实现要素:

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.通过字节码增强程序创建代理程序,以基于代理程序接收服务器性能数据。
31.可选地,服务器处理装置还包括心跳检测单元,被配置成:
32.从服务器标识中获取注册到监控哨兵的服务器标识,进而确定为注册标识;
33.对各注册标识对应的服务器定时执行心跳检测,响应于心跳检测异常,对心跳检测异常对应的服务器的实例执行摘除处理。
34.可选地,目标评价指标确定单元进一步被配置成:
35.确定在预设时间内接口标识对应的接口被调用的次数;
36.根据次数和预设的指标数,确定指标序号;
37.对各时间进行排序,进而基于排序后的时间和指标序号,确定目标评价指标值。
38.可选地,处理单元进一步被配置成:
39.确定在预设时间内,目标评价指标值连续大于预设阈值的次数;
40.响应于次数大于预设次数阈值,确定服务器状态为过载。
41.可选地,处理单元进一步被配置成:
42.基于服务器标识创建摘除任务,并发送至异步任务池;
43.响应于当前时间到达摘除任务对应的执行时间,执行摘除任务,以将服务器标识对应的服务器的实例从对应的注册中心摘除。
44.另外,本技术还提供了一种服务器处理电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的服务器处理方法。
45.另外,本技术还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述的服务器处理方法。
46.上述发明中的一个实施例具有如下优点或有益效果:本技术通过字节码增强程序,接收服务器性能数据,代码侵入性低、性能影响小。通过获取服务器性能数据对应的服务器标识、接口标识和方法标识;基于服务器性能数据,确定通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间;根据各时间,确定目标评价指标值;基于目标
评价指标值,确定服务器状态,响应于服务器状态为过载,将服务器标识对应的服务器的实例从对应的注册中心摘除,确保下一次访问请求时不会被客户端访问到,以保证客户请求数据的准确性。
47.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
48.附图用于更好地理解本技术,不构成对本技术的不当限定。其中:
49.图1是根据本技术第一实施例的服务器处理方法的主要流程的示意图;
50.图2是根据本技术第二实施例的服务器处理方法的主要流程的示意图;
51.图3是根据本技术第三实施例的服务器处理方法的系统原理图;
52.图4是根据本技术实施例的服务器处理方法的熔断规则配置逻辑示意图;
53.图5是根据本技术实施例的服务器处理方法的代理程序执行逻辑示意图;
54.图6是根据本技术实施例的服务器处理方法的数据工厂实现逻辑示意图;
55.图7是根据本技术实施例的服务器处理方法的任务监听实现逻辑示意图;
56.图8是根据本技术实施例的服务器处理方法的协议适配逻辑示意图;
57.图9是根据本技术实施例的服务器处理装置的主要单元的示意图;
58.图10是本技术实施例可以应用于其中的示例性系统架构图;
59.图11是适于用来实现本技术实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
60.以下结合附图对本技术的示范性实施例做出说明,其中包括本技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
61.图1是根据本技术第一实施例的服务器处理方法的主要流程的示意图,如图1所示,服务器处理方法包括:
62.步骤s101,通过字节码增强程序,接收服务器性能数据,进而获取服务器性能数据对应的服务器标识、接口标识和方法标识。
63.本实施例中,服务器处理方法的执行主体(例如,可以是服务器)可以通过字节码增强程序,接收服务器性能数据。具体地,字节码增强的步骤为:执行主体在获取到main主程序的字节码之后,可以基于字节码增强技术jvm,通过一些工具(如asm、javaasist)来修改main主程序的byte[]数组,得到一个新的byte数组,此为修改字节码的步骤;然后,执行主体可以使修改后的字节码生效:有两种方法:1)自定义classloader来加载修改后的字节码;2)替换掉原来的字节码:在jvm加载用户的class时,拦截、返回修改后的字节码;或者在运行时,使用instrumentation.redefineclasses方法来替换掉原来的字节码,进而可以得到如图5所示的agent代理程序。示例的,agent代理程序的实现机制:通过创建原始类的一
个子类(动态创建的类继承原来的类),子类名以原始类名为前缀,以避免重名,该子类即为通过字节码增强技术jvm创建的代理程序agent。通过字节码增强程序后得到的代理程序agent来接收服务器性能数据。可以理解的是,本技术实施例的服务器性能数据可以包括正常工作的服务器的性能数据,也可以包括发生故障的服务器的性能数据。
[0064]
执行主体可以从服务器的性能数据中获取服务器标识、服务器的用于接收或处理数据的接口所对应的接口标识、接口标识对应的方法标识。该方法标识可以是接口标识对应的接口内所包含的方法所对应的方法标识。方法标识,例如接口中的可用于调用的函数对应的函数名称。
[0065]
步骤s102,基于服务器性能数据,确定通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间。
[0066]
接口标识对应的接口中可以包括一个或多个可供调用的方法,在不同时间可以调用不同的方法,也可以调用相同的方法,本技术实施例对在不同时间调用的接口中的方法类型不做具体限定。
[0067]
执行主体在监听到通过字节码增强程序得到的代理程序agent所收集到的服务器性能数据时,可以通过时间窗口的策略,计算在一个时间段内,当前服务器ip(也就是服务器标识,例如服务器地址)、当前服务器ip对应的当前接口、当前服务器对应的当前接口对应的当前方法每次调用所消耗的时间。
[0068]
步骤s103,根据各时间,确定目标评价指标值。
[0069]
具体地,确定目标评价指标值,包括:确定在预设时间内接口标识对应的接口被调用的次数(例如1000次);根据次数和预设的指标数(例如50%、99%),确定指标序号(例如1000*50%=500,指标序号为500);对各时间进行排序(例如1s,2s,3s,....99s,100s,

999s,1000s),进而基于排序后的时间和指标序号,确定目标评价指标值。
[0070]
具体地,基于排序后的时间和指标序号,确定目标评价指标值,包括:基于排序后的时间得到排序数组,例如,对耗时(即在一个时间段内,当前接口1的当前方法1每次调用所消耗的时间)进行从小到大排序,形成容量为1000的数组a=[1s,2s,3s,....99s,100s,

999s,1000s];根据得到的指标序号(例如500)从数组a中取出对应的耗时(例如500s),即为目标评价指标值。
[0071]
示例的,将在一个时间段内通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间按从小到大的顺序进行排序,计算出目标评价指标值,例如tp99、tp999,并存储,提供api供“任务监听器”模块查询。tp指标(如tp99、tp999):tp=top percentile,top百分位数,是一个统计学里的术语,与平均数、中位数都是一类。tp指标指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,示例的,对耗时进行从小到大排序,形成容量为1000的数组a=[1s,2s,3s,....99s,100s,

999s,1000s],并取出结果为:总次数(例如1000次)*指标数(例如50%)=对应tp指标的序号(例如1000*50%=500),再根据序号取出对应排序好的时间,即为tp指标,示例的,从上述排序得到的数组a=[1s,2s,3s,....99s,100s,

999s,1000s]中找出第500个对应的调用耗时,即为tp50指标=a[500]=500s,也就是目标评价指标值。
[0072]
步骤s104,基于目标评价指标值,确定服务器状态,响应于服务器状态为过载,将服务器标识对应的服务器的实例从对应的注册中心摘除。
[0073]
具体地,在将服务器标识对应的服务器的实例从对应的注册中心摘除之前,方法还包括:确定在预设时间内,目标评价指标值连续大于预设阈值的次数;响应于次数大于预设次数阈值,确定服务器状态为过载。
[0074]
示例的:在预设时间内,例如1分钟内,当性能指标tp999连续5次大于666ms,则确定当前服务器过载,即可以执行熔断当前服务器的进程。熔断当前服务器,即为将当前服务器对应的实例从对应的注册中心摘除。
[0075]
具体地,将服务器标识对应的服务器的实例从对应的注册中心摘除,包括:基于服务器标识创建摘除任务,并发送至异步任务池;响应于当前时间到达摘除任务对应的执行时间,执行摘除任务,以将服务器标识对应的服务器的实例从对应的注册中心摘除。
[0076]
当执行主体确定需要从注册中心中摘除某一个服务器对应的实例时,可以基于要摘除的实例对应的服务器标识创建摘除任务,该摘除任务异步执行,具体为将该摘除任务放置于异步任务池中,在当前时间到达摘除任务设定的执行时间时,执行主体执行该摘除任务,将摘除任务对应的服务器标识对应的服务器的实例从注册中心摘除。该注册中心为服务器标识对应的注册中心。
[0077]
本实施例通过字节码增强程序,接收服务器性能数据,代码侵入性低、性能影响小。通过获取服务器性能数据对应的服务器标识、接口标识和方法标识;基于服务器性能数据,确定通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间;根据各时间,确定目标评价指标值;基于目标评价指标值,确定服务器状态,响应于服务器状态为过载,将服务器标识对应的服务器的实例从对应的注册中心摘除,确保下一次访问请求时不会被客户端访问到,以保证客户请求数据的准确性。
[0078]
图2是根据本技术第二实施例的服务器处理方法的主要流程示意图,如图2所示,服务器处理方法包括:
[0079]
步骤s201,通过字节码增强程序创建代理程序,以基于代理程序接收服务器性能数据,进而获取服务器性能数据对应的服务器标识、接口标识和方法标识。
[0080]
示例的,agent代理程序的实现机制:通过字节码增强程序创建原始类的一个子类(动态创建的类继承原来的类),子类名以原始类名为前缀,以避免重名,该子类即为通过字节码增强技术jvm创建的代理程序agent。通过字节码增强程序后得到的代理程序agent来接收服务器性能数据。可以理解的是,本技术实施例的服务器性能数据可以包括正常工作的服务器的性能数据,也可以包括发生故障的服务器的性能数据。
[0081]
步骤s202,基于服务器性能数据,确定通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间。
[0082]
步骤s203,根据各时间,确定目标评价指标值。
[0083]
步骤s204,基于目标评价指标值,确定服务器状态,响应于服务器状态为过载,将服务器标识对应的服务器的实例从对应的注册中心摘除。
[0084]
步骤s205,从服务器标识中获取注册到监控哨兵的服务器标识,进而确定为注册标识。
[0085]
示例的,对于注册到“监控哨兵”的服务器标识(例如服务器ip地址),定时心跳检测,将检测结果存储,并提供api接口,以供“任务监听器”模块查询。其中,监控哨兵可以是由一个或多个监控程序组成的监控程序集群,也可以是所监控的主服务器对应的一个或多
个备用的从服务器组成的从服务器集群,用于检测所监控的服务器是否出现故障。
[0086]
步骤s206,对各注册标识对应的服务器定时执行心跳检测,响应于心跳检测异常,对心跳检测异常对应的服务器的实例执行摘除处理。
[0087]
当监控哨兵对进行过注册的服务器标识对应的服务器进行心跳检测(心跳检测,例如发送ping命令)的结果中存在心跳检测异常(例如没有收到被监控的服务器针对ping命令的有效回复,或者收到被监控的服务器针对ping命令的有效回复的时间超过预设时间)时,对心跳检测异常的服务器标识对应的服务器的实例执行摘除处理。
[0088]
本技术实施例通过代理程序获取各服务器的性能数据结合监控哨兵的心跳检测,可以保证能够及时地发现过载的服务器,从而及时地对过载的服务器的实例从对应的注册中心摘除,以确保下一次访问请求时不会被客户端访问到,以保证客户请求数据的准确性。
[0089]
图3是根据本技术第三实施例的服务器处理方法的系统原理图。本技术实施例的服务器处理方法,应用于服务器出现过载时的熔断场景。
[0090]
本技术实施例中,服务器熔断:服务熔断一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施,熔断亦称为过载保护。在本技术实施例中,可以解释为系统层面切断对某台服务器的访问。java agent字节码增强技术:在java中是用javac命令编译源代码为字节码文件,字节码文件提供给java的jvm运行。而字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。tp指标(如tp99、tp999):tp=top percentile,top百分位数,是一个统计学里的术语,与平均数、中位数都是一类。tp指标指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,并取出结果为:总次数*指标数=对应tp指标的序号,再根据序号取出对应排序好的时间,即为tp指标。举例如下:假设上一分钟内接口被调用1000次,1000次的调用耗时分别为:1、2、3、...99、100、

999、1000秒。对耗时进行从小到大排序,形成容量为1000的数组a=[1s,2s,3s,....99s,100s,

999s,1000s];tp50的计算方式:1000*50%=500,所以tp50指标=a[500]=500s;tp99的计算方式:1000*99%=990,所以tp99指标=a[990]=990s;tp999的计算方式:1000*999%=999,所以tp999指标=a[999]=999s。
[0091]
如图3所示,客户端1、

、客户端n向服务器1、

、服务器n发送请求,服务器通过java agent字节码增强技术,创建主程序的代理程序(例如服务器1的代理程序1、

、服务器n的代理程序n),在代理程序中,监控、收集当前服务器的ip、当前接口、当前方法下,在某一时间段内的性能表现,具有代码侵入性低、性能影响小的优势。当执行主体监听到代理程序收集到的服务器性能数据,通过时间窗口的策略,计算在一个时间段内,当前服务器ip、当前接口、当前方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,计算出tp99、tp999,并存储,提供api接口供“任务监听器”模块查询。
[0092]
示例的,如图5所示,执行主体通过字节码增强技术jvm创建main主程序的代理程序agent。在代理程序agent创建完成后,通过pre-agent分布式链路追踪组件实现标记的开始位置的追踪,进而从标记的开始位置执行服务器性能数据的获取,当标记的位置对应的服务器性能数据获取完毕后,加入发送消息队列以供执行主体进行方法调用耗时的排序、目标评价指标值的计算。图5中的agentmain在运行时将agent附加到到任意的虚拟机中来修改字节码,并且,修改后可以立马更新,不需要重新加载类,因此可以实现热修改,并且比
自定义类加载器更方便。图5中的main主程序执行主程序业务逻辑。main主程序与agent代理程序配合,以确定出过载的服务器,可以实现代码侵入性低、对服务器性能影响小。
[0093]
同时,执行主体还通过监控哨兵对注册到监控哨兵的服务器进行数据收集和心跳检测,检测结果存储并提供api接口供“任务监听器”模块查询。
[0094]
示例的,如图6所示,客户端的代理程序agent收集到各服务器的性能数据作为采样数据发动至执行主体的数据工厂模块,执行主体的数据工厂模块对接收到的采样数据进行数据工厂的处理(例如对接收到的采样数据进行方法调用耗时的排序、目标评价指标值的计算),将处理结果存储到mysql的缓存中;同时,监控哨兵对客户端的代理程序发送的采样数据中注册到监控哨兵的服务器标识对应的服务器进行定时的心跳检测,检测结果存储到mysql的缓存中。
[0095]
任务监听器通过获取图3中的熔断规则配置中配置的熔断规则对代理程序处理结果进行识别,以确定发生过载的服务器。例如,代理程序处理结果1为:服务器1的接口1的方法1的tp999大于666ms的次数为6次。而任务监听器获取的熔断规则配置中配置的熔断规则为“当性能指标tp999连续5次大于666ms,则熔断当前服务器”,则确定代理程序处理结果1对应的服务器1为过载状态,执行熔断该服务器1。其中,熔断规则配置模块的作用:通过后台页面,配置服务器触发熔断的条件,例如:当性能指标tp999连续5次大于666ms,则熔断当前服务器。熔断规则的配置过程,如图4所示,用户通过统一登录系统登录到熔断规则配置后台后,在“新增规则”页面,创建熔断规则,并将规则存储在mysql配置库中。同时为了提高访问效率及系统的高可用性,将新增事件(例如新增的配置信息对应的事件)和变更事件(例如变更的配置信息对应的事件)异步更新到缓存中,提供api供“任务监听器”模块查询。
[0096]
具体地,熔断的过程如下(通过图3中的协议适配层实现),具体如图7所示:执行主体通过监控哨兵进程创建的监听任务获取服务器响应信息,通过数据工厂存储api层查询得到服务器性能数据(例如拉取当前接口、当前方法的tp99、tp999等信息),进而基于服务器响应信息和服务器性能数据筛选出触发熔断规则的服务器ip地址,并通过“协议适配器”将该ip地址在注册中心的服务(服务器的实例)进行摘除。协议适配器中包括http、jsf、dubbo等。超文本传输协议(hyper text transfer protocol,http)是一个简单的请求-响应协议。java server faces(jsf)是一种用于构建java web应用程序的标准框架(是java community process规定的jsr-127标准),它提供了一种以组件为中心的用户界面(ui)构建方法,从而简化了java服务器端应用程序的开发。dubbo是开源的一个高性能优秀的服务框架,使得应用可通过高性能的rpc实现服务的输出和输入功能。协议适配器与注册中心通信连接,可以将服务器实例从注册中心摘除。服务器与注册中心连接,服务器发布服务至注册中心。客户端与注册中心通信连接,客户端从注册中心拉取服务器发布的服务进行使用。对于心跳检测失败的服务器ip,通过“协议适配器”将该ip在注册中心的服务进行摘除。
[0097]
如图8所示,协议适配器对接、适配目前业内常用的rpc框架,支持服务器ip从对应的注册中心进行摘除。协议适配器中包括多种接口,例如jsf api、springcloud api、dubbo api等api接口。协议适配器根据创建的摘除任务,调用对应的接口(例如jsf api、springcloud api、dubbo api等api接口),从对应的注册中心(例如jsf注册中心、eureka注册中心、zookeeper注册中心)摘除各创建的摘除任务对应的服务器实例(也即服务器发布的服务)。客户端可以从各注册中心拉取摘除了各创建的摘除任务对应的服务器实例后的
各服务器发布的服务。
[0098]
本技术实施例可以实现:零侵入:通过java agent字节码增强技术收集服务器性能数据,业务系统代码零改造、业务逻辑零侵入;低损耗:仅需要一个线程或固定线程池用于发送服务器信息,消耗资源的计算、存储等动作全部旁路进行,对业务系统低损耗,几乎不占用服务器成本;零感知:熔断当前服务器后,客户端不会访问到,而非返回错误的结果,对用户体验来说零感知。
[0099]
本技术实施例中,每台服务器实例只需要一个守护线程池,将通过java agent收集到的接口、方法性能数据发送到数据工厂,对性能影响小、成本低。将出问题的机器,从注册中心摘除,客户端不会再请求到问题机器,后续对业务无损。
[0100]
图9是根据本技术实施例的服务器处理装置的主要单元的示意图。如图9所示,服务器处理装置900包括x单元901、x单元902和x单元903。
[0101]
接收单元901,被配置成通过字节码增强程序,接收服务器性能数据,进而获取服务器性能数据对应的服务器标识、接口标识和方法标识。
[0102]
消耗时间确定单元902,被配置成基于服务器性能数据,确定通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间。
[0103]
目标评价指标值确定单元903,被配置成根据各时间,确定目标评价指标值。
[0104]
处理单元904,被配置成基于目标评价指标值,确定服务器状态,响应于服务器状态为过载,将服务器标识对应的服务器的实例从对应的注册中心摘除。
[0105]
在一些实施例中,接收单元901进一步被配置成:通过字节码增强程序创建代理程序,以基于代理程序接收服务器性能数据。
[0106]
在一些实施例中,装置还包括图9中未示出的心跳检测单元,被配置成:从服务器标识中获取注册到监控哨兵的服务器标识,进而确定为注册标识;对各注册标识对应的服务器定时执行心跳检测,响应于心跳检测异常,对心跳检测异常对应的服务器的实例执行摘除处理。
[0107]
在一些实施例中,目标评价指标确定单元903进一步被配置成:确定在预设时间内接口标识对应的接口被调用的次数;根据次数和预设的指标数,确定指标序号;对各时间进行排序,进而基于排序后的时间和指标序号,确定目标评价指标值。
[0108]
在一些实施例中,处理单元904进一步被配置成:确定在预设时间内,目标评价指标值连续大于预设阈值的次数;响应于次数大于预设次数阈值,确定服务器状态为过载。
[0109]
在一些实施例中,处理单元904进一步被配置成:基于服务器标识创建摘除任务,并发送至异步任务池;响应于当前时间到达摘除任务对应的执行时间,执行摘除任务,以将服务器标识对应的服务器的实例从对应的注册中心摘除。需要说明的是,在本技术服务器处理方法和服务器处理装置在具体实施内容上具有相应关系,故重复内容不再说明。
[0110]
图10示出了可以应用本技术实施例的服务器处理方法或服务器处理装置的示例性系统架构1000。
[0111]
如图10所示,系统架构1000可以包括终端设备1001、1002、1003,网络1004和服务器1005。网络1004用以在终端设备1001、1002、1003和服务器1005之间提供通信链路的介质。网络1004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0112]
用户可以使用终端设备1001、1002、1003通过网络1004与服务器1005交互,以接收
或发送消息等。终端设备1001、1002、1003上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
[0113]
终端设备1001、1002、1003可以是具有服务器处理屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0114]
服务器1005可以是提供各种服务的服务器,例如对用户利用终端设备1001、1002、1003所接收的服务器性能数据提供支持的后台管理服务器(仅为示例)。后台管理服务器可以通过字节码增强程序,接收服务器性能数据,代码侵入性低、性能影响小。通过获取服务器性能数据对应的服务器标识、接口标识和方法标识;基于服务器性能数据,确定通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间;根据各时间,确定目标评价指标值;基于目标评价指标值,确定服务器状态,响应于服务器状态为过载,将服务器标识对应的服务器的实例从对应的注册中心摘除,确保下一次访问请求时不会被客户端访问到,以保证客户请求数据的准确性。
[0115]
需要说明的是,本技术实施例所提供的服务器处理方法一般由服务器1005执行,相应地,服务器处理装置一般设置于服务器1005中。
[0116]
应该理解,图10中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0117]
下面参考图11,其示出了适于用来实现本技术实施例的终端设备的计算机系统1100的结构示意图。图11示出的终端设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0118]
如图11所示,计算机系统1100包括中央处理单元(cpu)1101,其可以根据存储在只读存储器(rom)1102中的程序或者从存储部分1108加载到随机访问存储器(ram)1103中的程序而执行各种适当的动作和处理。在ram1103中,还存储有计算机系统1100操作所需的各种程序和数据。cpu1101、rom1102以及ram1103通过总线1104彼此相连。输入/输出(i/o)接口1105也连接至总线1104。
[0119]
以下部件连接至i/o接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(crt)、液晶征信授权查询处理器(lcd)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
[0120]
特别地,根据本技术公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(cpu)1101执行时,执行本技术的系统中限定的上述功能。
[0121]
需要说明的是,本技术所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限
于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0122]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0123]
描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、消耗时间确定单元、目标评价指标确定单元和处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0124]
作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备通过字节码增强程序,接收服务器性能数据,代码侵入性低、性能影响小。通过获取服务器性能数据对应的服务器标识、接口标识和方法标识;基于服务器性能数据,确定通过接口标识对应的接口每次调用各方法标识对应的方法时所消耗的时间;根据各时间,确定目标评价指标值;基于目标评价指标值,确定服务器状态,响应于服务器状态为过载,将服务器标识对应的服务器的实例从对应的注册中心摘除。
[0125]
根据本技术实施例的技术方案,确保下一次访问请求时不会被客户端访问到,以保证客户请求数据的准确性。每台服务器实例只需要一个守护线程池,将通过java agent收集到的接口、方法性能数据发送到数据工厂,对性能影响小、成本低。将出问题的机器,从注册中心摘除,客户端不会再请求到问题机器,后续对业务无损。
[0126]
上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明
白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
再多了解一些

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

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

相关文献