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

服务器调度方法、装置、计算机设备和存储介质与流程

2021-10-27 18:08:00 来源:中国专利 TAG:调度 装置 服务器 计算机 方法


1.本技术涉及api技术领域,特别是涉及一种服务器调度方法、装置、计算机设备和存储介质。


背景技术:

2.api(application programming interface,应用程序接口)网关系统在应对大量的服务请求时,经常出现服务器因为处理过量服务请求导致服务请求的时延不稳定或者服务器宕机的情况,严重影响业务稳定性和用户体验。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种能够合理进行负载分担,提高业务稳定性和用户体验的服务器调度方法、装置、计算机设备和存储介质。
4.一种服务器调度方法,所述方法包括:
5.确定第一服务器组内各服务器的实时承载量;
6.在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,所述借调服务器的实时承载量小于所述借调服务器的承载量阈值;
7.将所述借调服务器添加至所述第一服务器组,
8.其中,所述第一服务器组为多个服务器组中的任一服务器组,所述第二服务器组为所述多个服务器组内除所述第一服务器组外的服务器组,归属于同一所述服务器组的多个服务器用于处理来自目标应用程序api接口的服务请求,所述目标api接口归属于与所述服务器组对应的api接口组。
9.在其中一个实施例中,在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,包括:
10.在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从所述第二服务器组内确定候选借调服务器,所述候选借调服务器的实时承载量小于所述候选借调服务器的承载量阈值;
11.根据所述候选借调服务器的实时承载量,从所述候选借调服务器中确定借调服务器。
12.在其中一个实施例中,根据所述候选借调服务器的实时承载量,从所述候选借调服务器中确定借调服务器,包括:
13.根据所述候选借调服务器的实时承载量,从所述候选借调服务器中选择预设数量个候选借调服务器作为目标服务器,所述目标服务器的实时承载量小于除所述目标服务器外的所述候选借调服务器的实时承载量;
14.从所述目标服务器中确定借调服务器。
15.在其中一个实施例中,根据所述候选借调服务器的实时承载量,从所述候选借调
服务器中确定借调服务器,包括:
16.确定各候选借调服务器的实时承载量与所述各候选借调服务器的承载量阈值的第一差值;
17.根据所述候选借调服务器对应的第一差值,从所述候选借调服务器中选择预设数量个候选借调服务器作为目标服务器,所述目标服务器对应的第一差值大于除所述目标服务器外的所述候选借调服务器对应的第一差值;
18.从所述目标服务器中确定借调服务器。
19.在其中一个实施例中,所述从所述目标服务器中确定借调服务器,包括:
20.确定各所述目标服务器所归属的服务器组;
21.根据各所述目标服务器所归属的服务器组所对应的api接口组的优先级,确定各所述目标服务器的优先级;
22.确定优先级最低的所述目标服务器为所述借调服务器。
23.在其中一个实施例中,所述方法还包括:
24.在所述第一服务器组内的各所述服务器的实时承载量均小于各所述服务器的承载量阈值的情况下,从所述第一服务器组中的至少一个所述借调服务器中确定待释放服务器;
25.暂停向所述待释放服务器分配服务请求,直至所述第一服务器组内剩余服务器的实时承载量均大于或者等于各所述剩余服务器的承载量阈值,所述剩余服务器为所述第一服务器组内除所述待释放服务器外的服务器;
26.统计暂停向所述待释放服务器分配服务请求的暂停时长;
27.在所述暂停时长达到时长阈值的情况下,将所述待释放服务器从所述第一服务器组内删除。
28.在其中一个实施例中,所述方法还包括:
29.在向所述第一服务器组内的服务器分配服务请求的过程中,若当前服务器的实时承载量大于或者等于所述当前服务器的承载量阈值,确定所述当前服务器的实时承载量与所述当前服务器的承载量阈值的第二差值;
30.在所述第二差值小于差值阈值的情况下,向所述当前服务器分配所述服务请求;或者,
31.在所述第二差值大于或者等于差值阈值的情况下,暂停向所述当前服务器分配服务请求。
32.一种服务器调度装置,所述装置包括:
33.第一确定模块,用于确定第一服务器组内各服务器的实时承载量;
34.第二确定模块,用于在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,所述借调服务器的实时承载量小于所述借调服务器的承载量阈值;
35.调度模块,用于将所述借调服务器添加至所述第一服务器组,
36.其中,所述第一服务器组为多个服务器组中的任一服务器组,所述第二服务器组为所述多个服务器组内除所述第一服务器组外的服务器组,归属于同一所述服务器组的多个服务器用于处理来自目标应用程序api接口的服务请求,所述目标api接口归属于与所述
服务器组对应的api接口组。
37.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
38.确定第一服务器组内各服务器的实时承载量;
39.在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,所述借调服务器的实时承载量小于所述借调服务器的承载量阈值;
40.将所述借调服务器添加至所述第一服务器组,
41.其中,所述第一服务器组为多个服务器组中的任一服务器组,所述第二服务器组为所述多个服务器组内除所述第一服务器组外的服务器组,归属于同一所述服务器组的多个服务器用于处理来自目标应用程序api接口的服务请求,所述目标api接口归属于与所述服务器组对应的api接口组。
42.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
43.确定第一服务器组内各服务器的实时承载量;
44.在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,所述借调服务器的实时承载量小于所述借调服务器的承载量阈值;
45.将所述借调服务器添加至所述第一服务器组,
46.其中,所述第一服务器组为多个服务器组中的任一服务器组,所述第二服务器组为所述多个服务器组内除所述第一服务器组外的服务器组,归属于同一所述服务器组的多个服务器用于处理来自目标应用程序api接口的服务请求,所述目标api接口归属于与所述服务器组对应的api接口组。
47.上述服务器调度方法、装置、计算机设备和存储介质,可以确定第一服务器组内各服务器的实时承载量,在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,并将所述借调服务器添加至所述第一服务器组。由于借调服务器的实时承载量小于其自身的承载量阈值,故借调服务器是具有闲置资源的服务器,本技术在第一服务器组内各服务器的实时承载量均大于或者等于各服务器的承载量阈值时,从其他组服务器中调度具有闲置资源的借调服务器,通过该借调服务器分担第一服务器组的服务请求,不仅可以实现负载分担,避免了服务器因为服务请求过多而宕机或导致请求时延不稳定的情况,可以提高业务稳定性及提高系统性能,且可以合理高效利用服务器资源。
附图说明
48.图1为一个实施例中服务器调度方法的应用环境图;
49.图2为一个实施例中服务器调度方法的流程示意图;
50.图3为一个实施例中服务器调度步骤的流程示意图;
51.图4为一个实施例中服务器调度步骤的流程示意图;
52.图5为一个实施例中服务器调度步骤的流程示意图;
53.图6为一个实施例中服务器调度步骤的流程示意图;
54.图7为一个实施例中服务器调度步骤的流程示意图;
55.图8为一个实施例中服务器调度步骤的流程示意图;
56.图9为一个实施例中服务器调度步骤的流程示意图;
57.图10为一个实施例中服务器调度装置的结构框图;
58.图11为一个实施例中计算机设备的内部结构图。
具体实施方式
59.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
60.本技术提供的服务器调度方法,可以应用于如图1所示的应用环境中。其中,通过api网关102向服务器104分配来自各api接口106的服务请求,以实现各api接口106向服务器104请求相应服务。其中,api网关102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
61.在一个实施例中,如图2所示,提供了一种服务器调度方法,以该方法应用于图1中的api网关为例进行说明,包括以下步骤:
62.步骤202,确定第一服务器组内各服务器的实时承载量。
63.举例来说,可以对所有的api接口进行分组处理,得到多个api接口组,各api接口组中可以包括至少一个api接口。分别为各个api接口组分配至少一个服务器,得到各个api接口组对应的服务器组。
64.示例性的,可以根据api接口对应的产品场景类型进行分组,将归属于同一产品场景类型的api接口划分为同一api接口组,或者若同一产品场景类型下的api接口存在多种开发技术环境,可以针对该产品场景类型下的api接口综合其开发技术环境进一步划分,得到多个api接口组。
65.需要说明的是,上述根据api接口的产品场景类型划分api接口组,仅作为本公开实施例中的一种示例,实际上,本公开实施例不对api接口组的划分方式做具体限定,凡是对api接口分组的方式均适用本公开实施例中,例如:还可以采用随机划分、按照api接口的服务请求量划分等方式。
66.完成分组划分之后,可以为各个api接口组分配至少一个服务器,分配给同一api接口组的至少一个服务器可以组成与该api接口组对应的服务器组,该服务器组内的服务器用于处理来自该api接口组内的api接口的服务请求。
67.在为各api接口组分配服务器的过程中,可以根据各api接口组中的api接口数量及日常服务请求量按需分配,例如:api接口数量少和/或日常服务请求量低,则可以为该api接口组分配较少的服务器或者分配低配置低内存的服务器,相反的,若api接口数量多和/或日常服务请求量高,则可以为该api接口组分配较多的服务器或者分配高配置高内存的服务器;或者也可以平均分配服务器、根据各api接口组对应的优先级分配分配服务器,本公开实施例不对服务器的分配方式做具体限定。
68.例如:假设将api接口1、api接口2和api接口3划分为同一api接口组,得到api接口
组1,将api接口4、和api接口5划分为同一api接口组,得到api接口组2。为api接口组1分配服务器1和服务器2,得到服务器组1,该服务器组1中的服务器(服务器1和服务器2)用于处理来自api接口组1中的目标api接口(api接口1、api接口2和api接口3)的服务请求,同理,为api接口组2分配服务器3,得到服务器组2,该服务器组2中的服务器(服务器3)用于处理来自api接口组2中的目标api接口(api接口4和api接口5)的服务请求。
69.可以将多个服务器组中的任一服务器组作为第一服务器组。针对该第一服务器组,可以确定该第一服务器组内各服务器的实时承载量,该实时承载量可以包括表征服务器实时请求处理能力的数据,例如:实时承载量可以包括服务器的tps(throughput of system,系统吞吐量),或者可以包括实时承载的服务请求量与可承载的服务请求总量的比值等数值,本公开实施例不对实时承载量的具体表现形式做具体限定,凡是可以表征服务器实时的请求处理能力的数据均可以作为实时承载量。
70.步骤204,在第一服务器组内各所述服务器的实时承载量均大于或者等于各服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,借调服务器的实时承载量小于借调服务器的承载量阈值。
71.举例来说,各服务器均可以根据其配置及内存的高低,预设对应的承载量阈值,例如:高配置高内存的服务器可以预设相对较大的承载量阈值,低配置低内存的服务器可以设置相对较小的承载量阈值。
72.在获取各个服务器的实时承载量后,可以确定各服务器的实时承载量是否大于或者等于各服务器的承载量阈值,并在各服务器的实时承载量大于或者等于各服务器的承载量阈值的情况下,可以认为第一服务器组内的所有服务器均满负载工作,没有或具有较少的空闲资源再处理新的服务请求,则此时可以从第二服务器组中确定借调服务器,该借调服务器的实时承载量小于该借调服务器的承载量阈值,也即该借调服务器为具有空闲资源的服务器。其中,第二服务器组可以为所有的服务器组中除第一服务器组以外的服务器组。
73.其中,借调服务器的数量可以为一个,也可以为多个,本公开实施例对此不做具体限定,以下实施例中均以一个借调服务器为例,对本公开实施例加以说明。
74.步骤206,将借调服务器添加至第一服务器组,其中,第一服务器组为多个服务器组中的任一服务器组,第二服务器组为多个服务器组内除第一服务器组外的服务器组,归属于同一服务器组的多个服务器用于处理来自目标应用程序api接口的服务请求,目标api接口归属于与服务器组对应的api接口组。
75.举例来说,在确定借调服务器后,可以将该借调服务器添加至该第一服务器组中,也即第一服务器组中新增了借调服务器,由于该借调服务器具有空闲资源,故可以对第一服务器组中的其他服务器进行负载分担,保证第一服务器组内的服务器不会因请求量过大而宕机或者出现请求时延不稳定的情况。
76.示例性的,以上述示例中的服务器组1和服务器组2为例,在服务器组1中服务器1的实时承载量大于或者等于服务器1的承载量阈值,且服务器2的实时承载量大于或者等于服务器2的承载量阈值的情况下,可以从除服务器组1以外的服务器组中确定借调服务器。假设确定服务器3为借调服务器,则可以将服务器3添加至服务器组1内,此时服务器3即作为服务器组1的服务器,处理来自api接口组1的服务请求,实现对服务器1和服务器2的负载分担,同时又作为服务器组2内的服务器处理来自api接口组2的服务请求。
77.以上述针对第一服务器组的调度操作为例,可以对所有服务器组进行调度处理,以实现针对各服务器组的负载均衡,本公开实时例对此不做赘述,具体调度过程参照前述针对第一服务器的调度过程即可。
78.本公开实施例提供的调度方法,api网关系统可以保持在最大化利用系统资源保障用户需求的前提之下,始终保持系统的稳定性和安全性,系统资源始终满足下述公式(一)。
[0079][0080]
其中,以上公式中
l
为产品场景类型数,
m
为该产品场景类型下的开发环境类,q为对应开发环境类下的总实时tps值,x为系统整体同时承载的tps阈值。
[0081]
上述服务器调度方法可以确定第一服务器组内各服务器的实时承载量,在所述第一服务器组内各所述服务器的实时承载量均大于或者等于各所述服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,并将所述借调服务器添加至所述第一服务器组。由于借调服务器的实时承载量小于其自身的承载量阈值,故借调服务器是具有闲置资源的服务器,本技术在第一服务器组内各服务器的实时承载量均大于或者等于各服务器的承载量阈值时,从其他组服务器中调度具有闲置资源的借调服务器,通过该借调服务器分担第一服务器组的服务请求,不仅可以实现负载分担,避免了服务器因为服务请求过多而宕机或导致请求时延不稳定的情况,可以提高业务稳定性及提高系统性能,且可以合理高效利用服务器资源。
[0082]
在一个实施例中,如图3所示,步骤204可以包括:
[0083]
步骤302,在第一服务器组内各服务器的实时承载量均大于或者等于各服务器的承载量阈值的情况下,从第二服务器组内确定候选借调服务器,候选借调服务器的实时承载量小于候选借调服务器的承载量阈值;
[0084]
步骤304,根据候选借调服务器的实时承载量,从候选借调服务器中确定借调服务器。
[0085]
举例来说,在第一服务器组内各服务器的实时承载量均大于或者等于各服务器的承载量阈值的情况下,可以从第二服务器组内确定具有闲置资源的候选借调服务器,进而根据各候选借调服务器的实时承载量,从候选借调服务器中确定借调服务器。
[0086]
示例性的,可以从除第一服务器组外的第二服务器组中,确定实时承载量小于其自身的承载量阈值的服务器为候选借调服务器,并根据各候选借调服务器的实时承载量从候选借调服务器中确定借调服务器,例如:可以将实时承载量最小的候选借调服务器确定为借调服务器。
[0087]
本实施例中,通过从剩余服务器组中具有闲置资源的服务器中确定借调服务器,可以根据该借调服务器实现针对第一服务器组的负载分担,并且可以合理利用系统资源,提高资源的利用率。
[0088]
在一个实施例中,如图4所示,步骤304可以包括:
[0089]
步骤402,根据候选借调服务器的实时承载量,从候选借调服务器中选择预设数量个候选借调服务器作为目标服务器,目标服务器的实时承载量小于除所述目标服务器外的
候选借调服务器的实时承载量;
[0090]
步骤404,从目标服务器中确定借调服务器。
[0091]
举例来说,可以从候选借调服务器中选取实时承载量最低的预设数量个服务器,作为目标服务器,其中该预设数量可以为预设的数值,或者可以为通过预设比例及候选借调服务器的总数确定的数值。
[0092]
示例性的,可以根据各候选借调服务器的实时承载量对各候选借调服务器进行排序,可以采用升序排序,也可以采用降序排序,本公开实施例对排序方式不做限制。以升序排序为例,在对各候选借调服务器根据实时承载量进行升序排序,得到第一候选队列后,可以从第一候选队列的队首开始(采用降序排序的情况下,可以从队尾开始),按序选择预设数量个候选借调服务器作为目标服务器。
[0093]
确定目标服务器后,可以从目标服务器中确定借调服务器。例如:若预设数量为1,也即目标服务器的数量的为1,则可以直接将目标服务器确定为借调服务器,也即将候选借调服务器中实时承载量最低的服务器作为借调服务器;或者,若预设数量为高于1的数值,则可以随机或者按照设定的选取规则从目标服务器中确定借调服务器,其中,选取规则为预设的用于选择借调服务器的规则。
[0094]
本实施例中,由于目标服务器为候选借调服务器中实时承载量最低的预设数量个服务器,故从目标服务器中确定借调服务器,即可以认为从闲置资源较高的几个候选借调服务器中确定借调服务器,不仅可以实现合理利用服务器资源,提高资源利用率,并且可以减少借调次数。
[0095]
在一个实施例中,如图5所示,步骤304还可以包括:
[0096]
步骤502,确定各候选借调服务器的实时承载量与各候选借调服务器的承载量阈值的第一差值;
[0097]
步骤504,根据候选借调服务器对应的第一差值,从候选借调服务器中选择预设数量个候选借调服务器作为目标服务器,目标服务器对应的第一差值大于除目标服务器外的候选借调服务器对应的第一差值;
[0098]
步骤506,从目标服务器中确定借调服务器。
[0099]
举例来说,可以确定各候选借调服务器的实时承载量,并确定各候选借调服务器的实时承载量与各候选借调服务器的承载量阈值的第一差值。并从候选借调服务器中确定第一差值最大的预设数量个服务器作为目标服务器。
[0100]
示例性的,可以根据各候选借调服务器的实时承载量与承载量阈值的第一差值对各候选借调服务器进行排序,可以采用升序排序,也可以采用降序排序,本公开实施例对排序方式不做限制。以升序排序为例,在对各候选借调服务器根据第一差值进行升序排序,得到第二候选队列后,可以从第二候选队列的队尾开始(采用降序排序的情况下,可以从队首开始),按序选择预设数量个候选借调服务器作为目标服务器。
[0101]
确定目标服务器后,可以从目标服务器中确定借调服务器,例如:若预设数量为1,也即目标服务器的数量的为1,则可以直接将该目标服务器确定为借调服务器,也即将候选借调服务器中实时承载量与承载量阈值的第一差值最大的服务器作为借调服务器;或者,若预设数量为高于1的数值,则可以随机或者按照设定的选取规则从目标服务器中确定借调服务器,其中,选取规则为预设的用于选择借调服务器的规则。
[0102]
本实施例中,由于目标服务器为候选借调服务器中实时承载量与承载量阈值的第一差值较大的预设数量个服务器,故从目标服务器中确定借调服务器,即可以认为从闲置资源最高的几个候选借调服务器中确定借调服务器,不仅可以实现合理利用服务器资源,提高服务器资源利用率,并且可以减少借调次数。
[0103]
在一个实施例中,如图6所示,步骤404或者步骤506还可以包括:
[0104]
步骤602,确定各目标服务器所归属的服务器组;
[0105]
步骤604,根据各目标服务器所归属的服务器组所对应的api接口组的优先级,确定各目标服务器的优先级;
[0106]
步骤606,确定优先级最低的目标服务器为借调服务器。
[0107]
举例来说,在划分api接口组的时候,可以根据各api接口组对应的产品场景类别,为各api接口组设置对应的优先级,例如:产品场景类型的重要程度越高或者对响应速度要求越高,对应的api接口组优先级越高。在确定目标服务器后,可以确定各目标服务器所归属的服务器组,并确定各服务器组对应的api接口组的优先级,以各目标服务器所归属的服务器组所对应的api接口组的优先级,作为各目标服务器的优先级,可以将优先级最低的目标服务器确定为借调服务器。
[0108]
在一个示例中,若存在多个同一最低优先级的目标服务器的情况下,可以将其中实时承载量最小的目标服务器确定为借调服务器,或者将其中实时承载量与承载量阈值的第一差值最大的目标服务器确定为借调服务器。
[0109]
本公开实施例中,可以将优先级最低的目标服务器确定为借调服务器,也即从优先级较低的api接口组对应的服务器组中借调服务器,可以在提高服务器资源利用率的同时,保证高优先级场景的业务稳定性。
[0110]
在一个实施例中,如图7所示,上述方法还可以包括:
[0111]
步骤702,在第一服务器组内的各服务器的实时承载量均小于各服务器的承载量阈值的情况下,从第一服务器组中的至少一个借调服务器中确定待释放服务器;
[0112]
步骤704,暂停向待释放服务器分配服务请求,直至第一服务器组内剩余服务器的实时承载量均大于或者等于各剩余服务器的承载量阈值,剩余服务器为所述第一服务器组内除待释放服务器外的服务器;
[0113]
步骤706,统计暂停向待释放服务器分配服务请求的暂停时长;
[0114]
步骤708,在暂停时长达到时长阈值的情况下,将待释放服务器从第一服务器组内删除。
[0115]
举例来说,参照图8所示,在第一服务器组内包括借调服务器的情况下,可以监听该第一服务器组内各服务器的实时承载量,并在各服务器的实时承载量均小于各服务器的承载量阈值的情况下,从第一服务器组中的至少一个借调服务器确定待释放服务器,并暂停向该待释放服务器分配服务请求。若暂停向待释放服务器分配服务请求后,第一服务器组中除待释放服务器以外的剩余服务器的实时承载量均大于或者等于各剩余服务器的承载量阈值,则重新开始向待释放服务器分配服务请求,并继续进行监听,直至再次监听到第一服务器组内各服务器的实时承载量均小于各服务器的承载量阈值,暂停向该待释放服务器分配服务请求,重复前述过程。
[0116]
在开始暂停向待释放服务器分配服务请求时开始计时,统计暂停向待释放服务器
分配服务请求的暂停时长,在暂停时长达到时长阈值的情况下,可以认为该第一服务器组的剩余服务器目前可以稳定的承载来自对应的api接口组的服务请求量,故可以将该待释放服务器从第一服务器内释放,也即将其从第一服务器组内删除。其中,时长阈值可以为预设的任一数值。
[0117]
示例性的,仍以上述示例中的服务器组1为例,在将服务器3调度至服务器组1内后,服务器组1包括服务器1、服务器2和服务器3,服务器组2包括服务器3。确定待释放服务器为服务器3,则在暂停向服务器3分配服务请求的暂停时长达到时长阈值的情况下,可以将服务器3从服务器组1内释放,释放后服务器组1包括服务器1、服务器2,服务器组2包括服务器3。
[0118]
在第一服务器组内包括多个借调服务器的情况下,可以从多个借调服务器中确定待释放服务器,本公开实施例不对确定待释放服务器的方式做具体限定。示例性的,可以按照第一服务器组中各借调服务器的借调时间信息,从借调服务器中确定待释放服务器,例如:可以按照借调时间的先后顺序,将最先调用的借调服务器确定为待释放服务器。或者,可以随机从第一服务器组中各借调服务器中确定一个待释放服务器。或者,还可以确定各借调服务器的实时承载量与各借调服务器的承载量阈值的第三差值,并根据第三差值从各借调服务器中确定待释放服务器,该待释放服务器对应的第三差值小于借调服务器中除该待释放服务器以外的借调服务器对应的第三差值。
[0119]
本公开实施例中,若第一服务器组内除待释放服务器的剩余服务器在时长阈值内,可以承载来自对应的api接口组的服务请求量,则说明该待释放服务器可以释放,通过该时长阈值,可以缓解待释放服务器释放后,短时间内第一服务器组的服务请求量升高导致在释放该待释放服务器之后,又需要再次借调服务器,导致资源浪费的情况,也即可以提高资源利用率,减少服务器调度次数。
[0120]
在一个实施例中,如图9所示,上述方法还可以包括:
[0121]
步骤902,在向第一服务器组内的服务器分配服务请求的过程中,若当前服务器的实时承载量大于或者等于当前服务器的承载量阈值,确定当前服务器的实时承载量与当前服务器的承载量阈值的第二差值;
[0122]
步骤904,在第二差值小于差值阈值的情况下,向当前服务器分配服务请求;或者,
[0123]
步骤906,在第二差值大于或者等于差值阈值的情况下,暂停向当前服务器分配服务请求。
[0124]
举例来说,在划分api接口组及api接口组对应的服务器组后,可以依次向api接口组对应的服务器组中的服务器分配来自该api接口组的服务请求,示例性的,可以采用轮询方式向服务器组中的服务器分配服务请求。
[0125]
在向第一服务器组内的服务器分配服务请求的过程中,若当前服务器的实时承载量大于或者等于当前服务器的承载量阈值,则可以计算当前服务器的实时承载量与当前服务器的承载量阈值的第二差值。在第二差值小于差值阈值的情况下,可以继续向该当前服务器分配服务请求,或者在第二差值大于或者等于差值阈值的情况下,可以暂停向该当前服务器分配服务请求。其中,差值阈值可以为预设的值。
[0126]
本公开实施例中,通过设置该差值阈值,可以使得当前服务器在超出承载量阈值的一定范围内仍能够正常工作,这样可以保证服务器组的高性能,同时可以保留部分资源
应付一些突发状况。
[0127]
应该理解的是,虽然图1

9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1

9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0128]
在一个实施例中,如图10所示,提供了一种服务器调度装置,包括:第一确定模块1002、第二确定模块1004和调度模块1006,其中:
[0129]
第一确定模块1002,用于确定第一服务器组内各服务器的实时承载量;
[0130]
第二确定模块1004,用于在第一服务器组内各服务器的实时承载量均大于或者等于各服务器的承载量阈值的情况下,从第二服务器组中确定借调服务器,借调服务器的实时承载量小于借调服务器的承载量阈值;
[0131]
调度模块1006,用于将借调服务器添加至第一服务器组,
[0132]
其中,所述第一服务器组为多个服务器组中的任一服务器组,所述第二服务器组为所述多个服务器组内除所述第一服务器组外的服务器组,归属于同一所述服务器组的多个服务器用于处理来自目标应用程序api接口的服务请求,所述目标api接口归属于与所述服务器组对应的api接口组。
[0133]
上述服务器调度装置,在第一服务器组内各服务器的实时承载量均大于或者等于各服务器的承载量阈值时,从其他组服务器中调度具有闲置资源的借调服务器,通过该借调服务器分担第一服务器组的服务请求,不仅可以实现负载分担,避免了服务器因为服务请求过多而宕机或导致请求时延不稳定的情况,可以提高业务稳定性及提高系统性能,且可以合理高效利用服务器资源。
[0134]
在一个实施例中,上述第二确定模块1004还可以用于:
[0135]
在所述第一服务器组内各服务器的实时承载量均大于或者等于各服务器的承载量阈值的情况下,从第二服务器组内确定候选借调服务器,候选借调服务器的实时承载量小于候选借调服务器的承载量阈值;
[0136]
根据候选借调服务器的实时承载量,从候选借调服务器中确定借调服务器。
[0137]
在一个实施例中,上述第二确定模块1004还可以用于:
[0138]
根据候选借调服务器的实时承载量,从候选借调服务器中选择预设数量个候选借调服务器作为目标服务器,目标服务器的实时承载量小于除目标服务器外的候选借调服务器的实时承载量;
[0139]
从目标服务器中确定借调服务器。
[0140]
在一个实施例中,上述第二确定模块1004还可以用于:
[0141]
确定各候选借调服务器的实时承载量与各候选借调服务器的承载量阈值的第一差值;
[0142]
根据候选借调服务器对应的第一差值,从候选借调服务器中选择预设数量个候选借调服务器作为目标服务器,目标服务器对应的第一差值大于除目标服务器外的候选借调服务器对应的第一差值;
[0143]
从目标服务器中确定借调服务器。
[0144]
在一个实施例中,上述第二确定模块1004还可以用于:
[0145]
确定各目标服务器所归属的服务器组;
[0146]
根据各目标服务器所归属的服务器组所对应的api接口组的优先级,确定各目标服务器的优先级;
[0147]
确定优先级最低的目标服务器为借调服务器。
[0148]
在一个实施例中,上述装置还可以包括:
[0149]
第三确定模块,用于在第一服务器组内的各服务器的实时承载量均小于各服务器的承载量阈值的情况下,从第一服务器组中的至少一个借调服务器中确定待释放服务器;
[0150]
第一暂停模块,用于暂停向待释放服务器分配服务请求,直至第一服务器组内剩余服务器的实时承载量均大于或者等于各剩余服务器的承载量阈值,剩余服务器为第一服务器组内除待释放服务器外的服务器;
[0151]
统计模块,用于统计暂停向待释放服务器分配服务请求的暂停时长;
[0152]
释放模块,用于在暂停时长达到时长阈值的情况下,将待释放服务器从第一服务器组内删除。
[0153]
在一个实施例中,上述装置还可以包括:
[0154]
第四确定模块,用于在向第一服务器组内的服务器分配服务请求的过程中,若当前服务器的实时承载量大于或者等于当前服务器的承载量阈值,确定当前服务器的实时承载量与当前服务器的承载量阈值的第二差值;
[0155]
分配模块,用于在第二差值小于差值阈值的情况下,向当前服务器分配所述服务请求;或者,
[0156]
第二暂停模块,在第二差值大于或者等于差值阈值的情况下,暂停向当前服务器分配服务请求。
[0157]
关于服务器调度装置的具体限定可以参见上文中对于服务器调度方法的限定,在此不再赘述。上述服务器调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0158]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储api接口组及服务器组的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务器调度方法。
[0159]
本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0160]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0161]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0162]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0163]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0164]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜