CN102137091B - 一种过负荷控制方法、装置、系统及客户端 - Google Patents
一种过负荷控制方法、装置、系统及客户端 Download PDFInfo
- Publication number
- CN102137091B CN102137091B CN 201010544043 CN201010544043A CN102137091B CN 102137091 B CN102137091 B CN 102137091B CN 201010544043 CN201010544043 CN 201010544043 CN 201010544043 A CN201010544043 A CN 201010544043A CN 102137091 B CN102137091 B CN 102137091B
- Authority
- CN
- China
- Prior art keywords
- resource
- client
- maximum
- resource type
- difference
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明实施例公开了一种过负荷控制方法,本发明实施例还提供相应的装置、系统及客户端。本发明技术方案通过接收客户端发送的资源请求消息,判断与该资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,若为0,则向客户端发送分配失败消息;若不为0,再判断该差值是否大于等于每次最大申请数,若是,则向客户端发送携带资源类型和资源数量的资源分配消息,其中资源数量等于每次最大申请数;若否,则向客户端发送携带资源类型和资源数量的资源分配消息,其中资源数量等于差值。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种过负荷控制方法、装置、系统及客户端。
背景技术
过负荷控制已经成为很多系统的服务器端的基本特性之一,因为业务种类越来越多,服务器端对外的接口越来越多,用户增加迅猛,业务量不断突增导致系统宕机时有发生。传统的过负荷控制都是服务器端实现的,主要是为了保护服务器自身,过负荷控制的消息(如业务类型)都包含在业务消息中,具体的:服务器端的监视模块定时采集业务处理模块的负荷状态,并反馈给控制模块,控制模块根据配置调用相应的策略计算负荷,并根据计算结果决定是否需要启动过负荷控制,如果需要,则向接入模块下发过负荷控制命令,接入模块接收命令后具体执行过负荷控制,控制用户调用服务器接口的次数。
在对现有技术的研究和实践过程中,本发明的发明人发现,当需要在不同场景中调用服务器端的同一个接口,但是要求分别控制每种场景的调用次数,现有的服务器端的过负荷控制机制无法实现,即服务器端无法实现分别控制各种场景的流量。
发明内容
本发明实施例提供一种过负荷控制方法、装置、系统及客户端。
一种过负荷控制方法,包括:
接收客户端发送的资源请求消息,所述资源请求消息携带资源类型;
判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;
若所述差值为0,则向所述客户端发送分配失败消息;
若所述差值不为0,则判断所述差值是否大于等于所述每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值。
一种过负荷控制方法,包括:
确定申请本地需要申请新的资源,向过负荷控制装置发送资源请求消息,所述资源请求消息携带资源类型,所述资源类型与调用服务器端接口的场景对应;
接收所述过负荷控制装置发送的资源分配消息或者分配失败消息。
一种过负荷控制装置,包括:
接收模块,用于接收客户端发送的资源请求消息,所述资源请求消息携带资源类型;
判断模块,用于判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;
分配失败消息发送模块,用于若所述差值为0,则向所述客户端发送分配失败消息;
资源分配消息发送模块,用于若所述差值不为0,则判断所述差值是否大于等于所述每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值。
一种客户端,包括:
确定模块,用于确定申请本地需要申请新的资源,向过负荷控制装置发送资源请求消息,所述资源请求消息携带资源类型,所述资源类型与调用服务器端接口的场景对应;
接收模块,用于接收所述过负荷控制装置发送的资源分配消息或者分配失败消息。
一种过负荷控制系统,包括:
过负荷控制装置,用于接收客户端发送的资源请求消息,所述资源请求消息携带资源类型;判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;若所述差值为0,则向所述客户端发送分配失败消息;若所述差值不为0,则判断所述差值是否大于等于所述每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值;
客户端,用于确定申请本地需要申请新的资源,向过负荷控制装置发送资源请求消息,所述资源请求消息携带资源类型,所述资源类型与调用服务器端接口的场景对应;以及接收所述过负荷控制装置发送的资源分配消息或者分配失败消息。
本发明实施例提供的技术方案中,通过判断当前最大允许请求数与当前累计分配资源数量的关系,来决定分配多少的资源数量给客户端,这样实现了对服务器端各个场景的流量的控制,以及实现在客户端对服务器端过负荷的控制,有效减少了因业务量突然猛增对服务器端性能的影响。
附图说明
图1是本发明实施例中过负荷控制方法数据流程图;
图2是本发明实施例中过负荷控制方法数据流程图;
图3是本发明实施例中过负荷控制方法数据流图;
图4是本发明实施例中滑动窗示意图;
图5是本发明实施例中过负荷控制装置结构示意图;
图6是本发明实施例中另一过负荷控制装置结构示意图;
图7是本发明实施例中客户端结构示意图;
图8是本发明实施例中过负荷控制系统结构示意图。
具体实施方式
本发明实施例提供一种过负荷控制方法,本发明实施例还提供相应的装置和系统。以下分别进行详细说明。
过负荷控制装置是用于控制客户端调用服务器端接口的次数的控制装置,过负荷控制装置可以配置在客户端中,也可以是一个独立设备,通过接口与客户端进行通信。客户端可以有多种,比如:邮件客户端,即时通信客户端等等。服务器端可以有多个接口,每个接口可以对应多个调用场景,每一个调用场景对应一个资源类型,客户端由于某种调用场景需要调用服务器端接口时,首先向过负荷控制装置申请与该调用场景对应的资源类型。
多个客户端共用一个过负荷控制装置,即一个过负荷控制装置对多个客户端需要申请的各个资源类型的调用次数进行控制;客户端由于某种调用场景需要调用服务器端接口时,先向过负荷控制装置申请对应的资源类型,该资源类型与该调用场景对应,过负荷控制装置对该资源类型的数量进行统一调配,过负荷控制装置会一次分配给客户端多个当前周期内有效的同一资源类型的资源数量,而客户端将保存这些资源,在当前周期内都有效,使用完或者过了当前周期时,再向过负荷控制装置重新申请资源。
过负荷控制装置本地可以预先设置资源类型表,如下表一:
表一
上表中,表项配置的最大允许请求数、配置的每次最大申请数、调整数、恢复时延门限值和启动时延门限值是预先配置好后不会产生变动;表项累计分配资源数量初始为0,随着将资源分配给客户端而不断变动。
请参阅图1,本发明过负荷控制方法的第一实施例为:
101、过负荷控制装置接收客户端发送的资源请求消息,所述资源请求消息携带资源类型;
过负荷控制装置接收客户端发送的资源请求消息,该资源请求消息携带资源类型,该资源类型与客户端调用服务器端接口的场景对应。
102、过负荷控制装置判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量。
103、过负荷控制装置若所述差值为0,则向所述客户端发送分配失败消息。
104、若所述差值不为0,则判断所述差值是否大于等于所述每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值。
本发明实施例提供的技术方案中,通过判断当前最大允许请求数与当前累计分配资源数量的关系,来决定分配多少的资源数量给客户端,这样实现了对服务器端各个场景的流量的控制,以及实现在客户端对服务器端过负荷的控制,有效减少了因业务量突然猛增对服务器端性能的影响。
请参阅图2,本发明过负荷控制方法的第二实施例为:
201、客户端确定申请本地需要申请新的资源,向过负荷控制装置发送资源请求消息,所述资源请求消息携带资源类型,所述资源类型与调用服务器端接口的场景对应。
202、客户端接收所述过负荷控制装置发送的资源分配消息或者分配失败消息。
本发明实施例提供的技术方案中,通过判断当前最大允许请求数与当前累计分配资源数量的关系,来决定分配多少的资源数量给客户端,这样实现了对服务器端各个场景的流量的控制,以及实现在客户端对服务器端过负荷的控制,有效减少了因业务量突然猛增对服务器端性能的影响。
请参阅图3,本发明过负荷控制方法的第三实施例为:
301、客户端对本地进行过负荷判断,确定本地是否需要申请新的资源;
客户端可以通过两种方式来确定是否需要申请新的资源。第一种方式:客户端需要判断是否有可用资源,如果有可用资源,则无需向过负荷控制装置申请新的资源,如果没有的话,则需要计算第一平均时延,并且向过负荷控制装置申请新的资源。
客户端可以在本地设置一个资源类型表,如表二所示:
资源类型 | 资源数量 |
A | 0 |
B | 20 |
表二
资源类型与客户端调用服务器端接口的场景对应。客户端可以随时查询该资源类型表,如果确定某类资源的资源数量数为0的时候,则表示需要向过负荷控制装置申请该类资源。如表一中所示,资源类型A的数量为0,所以需要到过负荷控制装置申请资源类型A的资源数量。
第二种方式:客户端还可以设置一个第一定时器,在过负荷控制装置启动时,第一定时器也启动。客户端预先设定一个时间,如果客户端已经在运行一段时间后,当第一定时器超时时,此时需要计算第一平均时延和向过负荷控制装置申请新的资源,并且客户端还需要对定时器清零,第一定时器清零后重新开始定时。
若客户端需要申请新的资源时,则客户端需要计算第一平均时延,第一平均时延为客户端在当前周期内从发送资源请求消息到服务器端起,至接收到服务器端返回的响应消息为止的所有调用时延的平均数,即服务器端的平均响应时延,例如:客户端在向服务器发送资源请求消息之前,记录当前时间t1,在收到服务器端的响应消息后,记录当前时间t2,则本次调用时延为t3=t2-t1,在当前周期内,累计时延其中,m为当前周期内的调用次数,tn为当前周期内第n次调用时延,则本周期内的平均时延t4=T÷m,t4就是第一平均时延。该响应消息可以是分配失败消息,也可以为资源分配消息。
302、客户端向过负荷控制装置发送资源请求消息;
客户端向过负荷控制装置发送资源请求消息,该资源请求消息携带资源类型和第一平均时延。
为了提高处理性能,客户端向过负荷控制装置可以采用批量申请和本地缓存的方式,即客户端一次申请多种流量类型的资源,每种流量类型申请多个资源,并在客户端本地缓存。如一次同时申请流量类型1的100个资源和流量类型2的200个资源,用完后再向过负荷控制装置申请,而不需要每次都到过负荷控制装置进行申请。
客户端保存有流量类型配置表三如下,描述该客户端需要申请的流量类型。
表三
客户端向过负荷控制发送的资源请求消息可以为getOLCResource接口进行发送,该getOLCResource定义如下:
接口名:getOLCResource
返回值:整数,代表本次申请的结果
参数1:inTLV,输入参数,表示申请的资源类型列表,每个元素为一个TpOlcIn,包含流量类型FlowType和上个周期的平均时延1Delay。
参数2:outTLV,输出参数,表示申请到的资源类型列表,每个元素为一个TpOlcOut,包含流量类型FlowType和申请到的资源数量1ResourceNum。
int getOLCResource(
in TpOlcInTLV inTLV,
out TpOlcOutTLV outTLV
);
struct TpOlcIn
{
int 1FlowType;//流量类型;
int 1Delay;//上个周期的平均时延
};
struct TpOlcOut
{
int 1FlowType;//流量类型;
int 1ResourceNum;//实际分配的资源数量;
};
303、过负荷控制装置接收客户端发送的资源请求消息后,判断与客户端发送的资源请求消息携带的资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0;
过负荷控制装置在接收客户端发送的资源请求消息后,根据该资源请求消息携带的资源类型去本地的资源类型表中查找该资源类型的当前最大允许请求数,并判断该当前最大允许请求数与当前的累计分配资源数量的差值是否为0,若为0,则执行步骤304,如不为0,则执行步骤305;若在资源类型表中找不到该资源类型,则直接分配本地预先设置的数量。
当前的累计分配资源数量为一个周期内对每个客户端分配的某一资源类型的总和,当前的累计分配资源数量=原来的累计分配资源数量-当前计数器的数值,该数值记录了滑动窗当前窗口占据的时间间隔中资源分配的数量。
滑动窗为一个循环使用的计数器队列,由若干个窗口组成,每个窗口对应一个计数器,滑动窗队列中窗口的个数预先设置,每个窗口占据的时间间隔=过负荷评估周期÷窗口的个数,每个计数器的数值初始为0,如图4所示,图4是一个循环使用的滑动窗,该滑动窗中总共有8个窗口,图中箭头所指的为当前的窗口,设置第二定时器对每个窗口占据的时间间隔进行定时,当第二定时器超时后,计算当前的累计分配资源数量=原来的累计分配资源数量-当前计数器的数值,再将当前所在的窗口的计数器设置为0,再将滑动窗向前滑动一个窗口,滑动窗滑动一图为一个周期,为了能更精确更实时性地对过服务器端的负荷进行控制,该循环使用的滑动窗能使得每个周期之间的时间间距仅为一个滑动窗口的时间间隔,例如图中所示,整个滑动窗分为8个滑动窗口,过负荷控制装置启动时,滑动窗从窗口1开始顺时针滑动,窗口1顺时针滑动到窗口8为第一个周期,窗口2顺时针滑动到窗口1为第二个周期,窗口3顺时针滑动到窗口2为第三个周期,所以,每次第二定时器超时,都将对该周期内的累计分配资源数量进行计算,即当前的累计分配资源数量。
304、过负荷控制装置向客户端发送分配失败消息;
若步骤303判断出与客户端发送的资源请求消息携带的资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值为0,过负荷控制装置则向客户端发送分配失败消息。
305、过负荷控制装置判断差值是否大于等于预先配置的每次最大申请数;
若步骤303判断出与客户端发送的资源请求消息携带的资源类型对应的当前最大允许请求数减去累计分配资源数量的差值不为0,则再判断该差值是否大于等于预先配置的每次最大申请数。如果大于等于,则执行步骤306,如果小于,则执行步骤308。
306、过负荷控制装置发送资源分配消息给客户端;
若步骤305判断出与客户端发送的资源请求消息携带的资源类型对应的当前最大允许请求数减去当前的累计分配资源数量的差值大于等于预先配置的每次最大申请数,则发送资源分配消息给客户端,该资源分配消息携带资源类型和资源数量,资源数量等于每次最大申请数。
307、过负荷控制装置发送资源分配消息给客户端;
若步骤305判断出与客户端发送的资源请求消息携带的资源类型对应的当前最大允许请求数减去当前的累计分配资源数量的差值小于预先配置的每次最大申请数,则发送资源分配消息给客户端,该资源分配消息携带资源类型和资源数量,资源数量等于与客户端发送的资源请求消息携带的资源类型对应的当前最大允许请求数减去当前的累计分配资源数量的差值。
308、客户端消息根据消息类型做相应处理;
若接收分配失败消息,则设置本地可用资源数量为0;
若接收资源分配消息,则设置本地可用资源数量为该资源分配消息中携带的资源数量。
在本发明另一实施例中,在步骤303之前,还可以执行以下步骤:
309:判断过负荷控制装置的第二定时器是否超时,若否,则等待超时,若是,则执行310。
过负荷控制装置在启动时,就自然启动了第二定时器,预先对该定时器设定时间间隔,当该定时时间间隔超过时,定时器重新开始计时;过负荷控制装置还需要计算第二平均时延。
第二平均时延为当前周期内各个客户端发送的对同一资源类型的资源请求消息所携带的第一平均时延的总和除以第一平均时延的个数,它可以表示当前周期内所有的客户端发送的同一资源类型的资源请求消息所携带的第一平均时延的平均数。
310、过负荷控制装置根据第二平均时延判断与资源类型对应的调用场景对应的服务器端接口是否过负荷;
过负荷控制装置首先判断当前第二平均时延是否大于预先配置的启动时延门限值。若大于,则说明服务器端当前处于过负荷状态,需要减少最大允许请求数和每次最大申请数;若小于,则判断第二平均时延是否小于预先配置的恢复时延门限值:
若小于,则说明服务器端当前处于从过负荷状态恢复的状态,可以增加最大允许请求数和每次最大申请数;若大于,则说明服务器段当前仍然处于过负荷状态。
311、根据步骤310判断情况对最大允许请求数和每次最大申请数进行调整;
服务器端当前处于过负荷状态时,需要减少最大允许请求数和每次最大申请数,具体的:
累计连续过负荷周期数加1,该累计连续过负荷周期数表示当前过负荷状态已经连续若干个周期,累计连续过负荷周期数的初始值为0。
计算最大允许请求数,该最大允许请求数为当前总共能申请资源请求消息携带中的资源类型的资源数量,最大允许请求数等于配置的最大允许请求数乘以预先设定的调整数的累计连续过负荷周期数次方,预先设定的调整数为一个大于0小于1的数。
计算每次最大申请数,该每次最大申请数为当前每个客户端每次能申请资源请求消息携带中的资源类型的资源数量,每次最大申请数等于配置的每次最大申请数乘以预先设定的调整数的累计连续过负荷周期数次方。
当服务器端当前处于从过负荷状态恢复的状态,可以增加最大允许请求数和每次最大申请数,具体的:
累计连续过负荷周期数减1,该累计连续过负荷周期数表示当前过负荷状态已经连续若干个周期,累计连续过负荷周期数的初始值为0;
计算最大允许请求数,该最大允许请求数为当前总共能申请资源请求消息携带中的资源类型的资源数量,最大允许请求数等于配置的最大允许请求数乘以预先设定的调整数的累计连续过负荷周期数次方,预先设定的调整数为一个大于0小于1的数。
计算每次最大申请数,该每次最大申请数为当前每个客户端每次能申请资源请求消息携带中的资源类型的资源数量,每次最大申请数等于配置的每次最大申请数乘以预先设定的调整数的累计连续过负荷周期数次方。
本发明实施例提供的技术方案中,通过判断当前最大允许请求数与当前累计分配资源数量的关系,来决定分配多少的资源数量给客户端,这样实现了对服务器端各个场景的流量的控制,以及实现在客户端对服务器端过负荷的控制,有效减少了因业务量突然猛增对服务器端性能的影响。并且通过对每个资源类型的分别控制,实现了对服务器端各个场景的流量的分别控制,弥补了现有技术中在服务器端进行过负荷控制的不足。
请参阅图5,本发明过负荷控制装置可以包括:
接收模块51,用于接收客户端发送的资源请求消息,所述资源请求消息携带资源类型;
判断模块52,用于判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;
分配失败消息发送模块53,用于若所述差值为0,则向所述客户端发送分配失败消息;
资源分配消息发送模块54,用于若所述差值不为0,则判断所述差值是否大于等于所述每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值。
可选的:如图6所示,所述资源请求消息携带第一平均时延,所述第一平均时延为所述客户端在同一个周期内从发送请求消息到服务器端起至服务器端返回响应消息止的所有时延的平均数,所示过负荷控制装置还包括:
第二平均时延模块55,用于确定第二定时器超时,获取第二平均时延,所述第二平均时延为当前周期内所有的客户端发送的同一资源类型的资源请求消息所携带的第一平均时延的平均数;
资源减少模块56,用于根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口过负荷,则减少所述最大允许请求数和所述每次最大申请数。
资源增加模块57,用于根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口没有过负荷,则增加所述最大允许请求数和所述每次最大申请数。
本发明实施例提供的技术方案中,通过判断当前最大允许请求数与当前累计分配资源数量的关系,来决定分配多少的资源数量给客户端,这样实现了对服务器端各个场景的流量的控制,以及实现在客户端对服务器端过负荷的控制,有效减少了因业务量突然猛增对服务器端性能的影响。并且通过对每个资源类型的分别控制,实现了对服务器端各个场景的流量的分别控制,弥补了现有技术中在服务器端进行过负荷控制的不足。
请参阅图7,本发明客户端可以包括:
确定模块71,用于确定申请本地需要申请新的资源,向过负荷控制装置发送资源请求消息,所述资源请求消息携带资源类型,所述资源类型与调用服务器端接口的场景对应;
接收模块72,用于接收所述过负荷控制装置发送的资源分配消息或者分配失败消息。
请参阅图8,本发明过负荷控制系统可以包括:
过负荷控制装置81,用于接收客户端发送的资源请求消息,所述资源请求消息携带资源类型;判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;若所述差值为0,则向所述客户端发送分配失败消息;若所述差值不为0,则判断所述差值是否大于等于所述每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值;
客户端82,用于确定申请本地需要申请新的资源,向过负荷控制装置发送资源请求消息,所述资源请求消息携带资源类型,所述资源类型与调用服务器端接口的场景对应;以及接收所述过负荷控制装置发送的资源分配消息或者分配失败消息。
本发明实施例提供的技术方案中,通过判断当前最大允许请求数与当前累计分配资源数量的关系,来决定分配多少的资源数量给客户端,这样实现了对服务器端各个场景的流量的控制,以及实现在客户端对服务器端过负荷的控制,有效减少了因业务量突然猛增对服务器端性能的影响。并且通过对每个资源类型的分别控制,实现了对服务器端各个场景的流量的分别控制,弥补了现有技术中在服务器端进行过负荷控制的不足。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的过负荷控制方法以及相应的装置、系统及客户端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (3)
1.一种过负荷控制方法,其特征在于,包括:
接收客户端发送的资源请求消息,所述资源请求消息携带资源类型,所述资源类型与客户端调用服务器端接口的场景对应;
判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;
若所述差值为0,则向所述客户端发送分配失败消息;
若所述差值不为0,则判断所述差值是否大于等于每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值;
其中,所述资源请求消息携带第一平均时延,所述第一平均时延为所述客户端在同一个周期内从发送请求消息到服务器端起至服务器端返回响应消息止的所有时延的平均数;
所述方法还包括:
确定第二定时器超时,获取第二平均时延,所述第二平均时延为当前周期内所有的客户端发送的同一资源类型的资源请求消息所携带的第一平均时延的平均数;
根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口过负荷,则减少所述最大允许请求数和所述每次最大申请数;
根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口没有过负荷,则增加所述最大允许请求数和所述每次最大申请数。
2.一种过负荷控制装置,其特征在于,包括:
接收模块,用于接收客户端发送的资源请求消息,所述资源请求消息携带资源类型,其中,所述资源类型与客户端调用服务器端接口的场景对应;
判断模块,用于判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;
分配失败消息发送模块,用于若所述差值为0,则向所述客户端发送分配失败消息;
资源分配消息发送模块,用于若所述差值不为0,则判断所述差值是否大于等于每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值;
其中,所述资源请求消息携带第一平均时延,所述第一平均时延为所述客户端在同一个周期内从发送请求消息到服务器端起至服务器端返回响应消息止的所有时延的平均数,所述过负荷控制装置还包括:
第二平均时延模块,用于确定第二定时器超时,获取第二平均时延,所述第二平均时延为当前周期内所有的客户端发送的同一资源类型的资源请求消息所携带的第一平均时延的平均数;
资源减少模块,用于根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口过负荷,则减少所述最大允许请求数和所述每次最大申请数;
资源增加模块,用于根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口没有过负荷,则增加所述最大允许请求数和所述每次最大申请数。
3.一种过负荷控制系统,其特征在于,包括:
过负荷控制装置,用于接收客户端发送的资源请求消息,所述资源请求消息携带资源类型,所述资源类型与客户端调用服务器端接口的场景对应;判断与所述资源类型对应的当前最大允许请求数与当前的累计分配资源数量的差值是否为0,所述最大允许请求数为当前最大允许申请所述资源类型的数量;若所述差值为0,则向所述客户端发送分配失败消息;若所述差值不为0,则判断所述差值是否大于等于每次最大申请数,所述每次最大申请数为当前每个客户端一次申请允许所述资源类型的资源数量,若所述差值大于等于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带所述资源类型和资源数量,所述资源数量等于所述每次最大申请数;若所述差值小于所述每次最大申请数,则向所述客户端发送资源分配消息,所述资源分配消息携带资源类型和资源数量,所述资源数量等于所述差值;其中,所述资源请求消息携带第一平均时延,所述第一平均时延为所述客户端在同一个周期内从发送请求消息到服务器端起至服务器端返回响应消息止的所有时延的平均数;确定第二定时器超时,获取第二平均时延,所述第二平均时延为当前周期内所有的客户端发送的同一资源类型的资源请求消息所携带的第一平均时延的平均数;根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口过负荷,则减少所述最大允许请求数和所述每次最大申请数;根据所述第二平均时延,确定与所述资源类型对应的调用场景对应的服务器端相应接口没有过负荷,则增加所述最大允许请求数和所述每次最大申请数;
客户端,用于确定申请本地需要申请新的资源,向过负荷控制装置发送资源请求消息,所述资源请求消息携带资源类型,所述资源类型与调用服务器端接口的场景对应;以及接收所述过负荷控制装置发送的资源分配消息或者分配失败消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010544043 CN102137091B (zh) | 2010-11-15 | 2010-11-15 | 一种过负荷控制方法、装置、系统及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010544043 CN102137091B (zh) | 2010-11-15 | 2010-11-15 | 一种过负荷控制方法、装置、系统及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102137091A CN102137091A (zh) | 2011-07-27 |
CN102137091B true CN102137091B (zh) | 2013-11-06 |
Family
ID=44296747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010544043 Expired - Fee Related CN102137091B (zh) | 2010-11-15 | 2010-11-15 | 一种过负荷控制方法、装置、系统及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102137091B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866909B (zh) * | 2012-08-27 | 2018-02-27 | 北京奇虎科技有限公司 | 一种控制对接口资源访问的资源锁的系统和方法 |
CN105893150B (zh) * | 2016-03-31 | 2021-04-20 | 腾讯科技(深圳)有限公司 | 接口调用频度控制、接口调用请求处理方法及装置 |
CN111262894B (zh) * | 2018-11-30 | 2023-06-20 | 北京嘀嘀无限科技发展有限公司 | 一种控制在线咨询用户量的方法及装置 |
CN112583726B (zh) * | 2019-09-27 | 2022-11-11 | 华为技术有限公司 | 一种流量控制的方法及装置 |
CN112785323A (zh) * | 2019-11-07 | 2021-05-11 | 北京沃东天骏信息技术有限公司 | 资源分配方法、装置与电子设备 |
CN113938392B (zh) * | 2020-07-09 | 2023-11-14 | 亚信科技(南京)有限公司 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360093A (zh) * | 2007-08-02 | 2009-02-04 | 华为技术有限公司 | 一种负载控制方法及其系统 |
CN101557345A (zh) * | 2009-05-07 | 2009-10-14 | 中兴通讯股份有限公司 | 提供设备资源的方法和设备资源管理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7032048B2 (en) * | 2001-07-30 | 2006-04-18 | International Business Machines Corporation | Method, system, and program products for distributed content throttling in a computing environment |
-
2010
- 2010-11-15 CN CN 201010544043 patent/CN102137091B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360093A (zh) * | 2007-08-02 | 2009-02-04 | 华为技术有限公司 | 一种负载控制方法及其系统 |
CN101557345A (zh) * | 2009-05-07 | 2009-10-14 | 中兴通讯股份有限公司 | 提供设备资源的方法和设备资源管理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102137091A (zh) | 2011-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102139410B1 (ko) | 시간 기반 노드 선출 방법 및 장치 | |
CN102137091B (zh) | 一种过负荷控制方法、装置、系统及客户端 | |
US11546644B2 (en) | Bandwidth control method and apparatus, and device | |
CN109618002B (zh) | 一种微服务网关优化方法、装置及存储介质 | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
JP5000456B2 (ja) | 資源管理システム、資源管理装置およびその方法 | |
CN103067293A (zh) | 负载均衡设备的连接管理和复用的方法和系统 | |
CN110505155A (zh) | 请求降级处理方法、装置、电子设备及存储介质 | |
CN102624884B (zh) | 一种用于接收p2p资源的方法、装置和设备 | |
CN106936867B (zh) | 一种业务请求的响应方法及装置 | |
CN115334082A (zh) | 负载均衡方法、装置、计算机设备、存储介质和产品 | |
CN105430028A (zh) | 服务调用方法、提供方法及节点 | |
CN112260962B (zh) | 一种带宽控制方法及装置 | |
CN107920136B (zh) | 数据同步控制方法、装置以及服务器 | |
CN111897659B (zh) | 业务处理频率的控制方法、系统、装置、电子设备 | |
CN113760559A (zh) | 一种双核通信方法和电子设备 | |
CN114827033B (zh) | 数据流控方法、装置、设备与计算机可读存储介质 | |
CN116055401A (zh) | 一种消息处理方法、装置、设备及存储介质 | |
CN108667920B (zh) | 一种雾计算环境业务流量加速系统及其业务流量加速方法 | |
CN107193488B (zh) | 一种分布式系统数据重分配方法及其装置 | |
CN114338714B (zh) | 一种区块同步方法、装置、电子设备和存储介质 | |
CN106131187B (zh) | 一种授权的控制方法及装置 | |
CN113051063B (zh) | 分布式任务的任务调度方法、装置及电子设备 | |
CN109254928A (zh) | 一种日志处理的方法、系统、设备及计算机可读存储介质 | |
CN114629958A (zh) | 资源分配方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131106 Termination date: 20151115 |
|
EXPY | Termination of patent right or utility model |