一种流量控制方法及装置制造方法

文档序号:7980816阅读:125来源:国知局
一种流量控制方法及装置制造方法
【专利摘要】本发明提供了一种流量控制方法及装置,以解决现有流控方法针对性较强,复用性较低的问题。方法包括:接收流量控制请求,其中所述流量控制请求中包括第一流控主体;获取所述第一流控主体的配置信息,其中,所述配置信息中包括所述第一流控主体的访问量阈值;通过插件接口调用所述第一流控主体对应的业务插件,检测所述第一流控主体是否满足业务需求,其中,所述业务插件用于保存业务需求策略;在满足业务需求的前提下,当所述第一流控主体的当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识;当不满足业务需求,或,所述第一流控主体的当前访问量大于或等于所述访问量阈值时,返回失败标识。本发明适用于各种业务,复用性很高。
【专利说明】一种流量控制方法及装置
【技术领域】
[0001]本申请涉及网络技术,特别是涉及一种流量控制方法及装置。
【背景技术】
[0002]流量控制的目的是限制外部访问量对流控主体造成的访问压力,从而实现对流控主体的保护,并保证后续业务的正常运转,避免由访问量过大而导致业务响应缓慢甚至停止的情况,保证用户网络高效而稳定的运行。
[0003]随着网络的不断发展,网络平台每天要处理的访问量是非常庞大的,若不进行流量控制,就很可能会导致网络平台崩溃,无法正常访问。
[0004]实际处理中,在所述主体访问服务器时,需要对流量进行控制。首先需要判断所述主体是否满足业务需求,在满足业务需求的前提下,再判断所述主体的访问量是否达到阀值,若访问量未达到阀值,则可以进行访问;若访问量达到阀值,则不可以进行访问。
[0005]但是,上述方法将业务需求固化在了流量控制方法中,因而方法的针对性比较强,导致每一类业务需求,都需要配铬与其对应的一种独特的流量控制方法,流量控制方法复用性比较低。

【发明内容】

[0006]本申请提供一种流量控制方法及装置,以解决现有流量控制方法针对性比较强,复用性比较低的问题。
[0007]为了解决上述问题,本申请公开了一种流量控制方法,包括:
[0008]接收流量控制请求,其中,所述流量控制请求中包括第一流控主体;
[0009]获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括所述第一流控主体的访问量阈值;
[0010]针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,检测所述第一流控主体是否该类满足业务需求,其中,所述业务插件用于保存业务需求策略;
[0011]在满足各类业务需求的前提下,当所述第一流控主体的当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识;
[0012]当不满足业务需求,或,所述第一流控主体的当前访问量大于或等于所述访问量阈值时,返回失败标识。
[0013]优选的,所述流量控制请求中还包括流控策略,
[0014]所述当前访问量大于或等于所述访问量阈值之后,还包括:
[0015]对流量控制请求中的流控策略进行判断;
[0016]当流控策略为拒绝时,返回失败标识;
[0017]当流控策略为切换时,切换到第二流控主体并获取所述第二流控主体的配铬信
肩、O
[0018]优选的,所述配铬信息中还包括第一流控主体的类别,所述流量控制请求中还包括切换阈值;
[0019]所述切换到第二流控主体的步骤包括:
[0020]查询缓存的配铬信息中,所述第一流控主体的类别下是否存在第二流控主体;
[0021]若不存在所述第二流控主体,则切换失败,返回失败标识;
[0022]若存在所述第二流控主体,则检测切换次数是否小于切换阈值;
[0023]若切换次数不小于切换阈值,则切换失败,返回失败标识;
[0024]若切换次数小于切换阈值,则随机选取一个所述第一流控主体的类别下的第二流控主体并执行切换。
[0025]优选的,所述在满足各类业务需求的前提下,在当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识,包括:
[0026]在满足各类业务需求的前提下,当访问量阈值大于O时,从缓存中获取当前访问量;
[0027]检测当前访问量是否小于所述访问量阈值;
[0028]在当前访问量小于所述访问量阈值时,将当前访问量加一,并更新到缓存中;
[0029]返回成功标识。
[0030]优选的,还包括流量释放方法:
[0031]接收流量释放请求,其中,所述流量释放请求中包括第一流控主体;
[0032]获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括访问量阈值;
[0033]当所述访问量阈值大于O时,从缓存中获取当前访问量;
[0034]当所述当前访问量大于O时,将当前访问量减一并更新到缓存中。
[0035]优选的,所述配铬信息中还包括所述第一流控主体的超时时间,所述的方法还包括:
[0036]当超时时间内未接收到流量释放请求时,清空所述当前访问量。
[0037]相应的,本申请还公开了一种流量控制装置,包括:
[0038]接收模块,用于接收流量控制请求,其中,所述流量控制请求中包括第一流控主体;
[0039]获取模块,用于获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括所述第一流控主体的访问量阈值;
[0040]调用并检测模块,用于针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,检测所述第一流控主体是否满足该类业务需求,其中,所述业务插件用于保存业务需求策略;
[0041]第一返回模块,用于在满足各类业务需求的前提下,当所述第一流控主体的当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识;
[0042]第二返回模块,用于当不满足业务需求,或,所述第一流控主体的当前访问量大于或等于所述访问量阈值时,返回失败标识。
[0043]优选的,所述流量控制请求中还包括流控策略,所述的装置还包括:
[0044]策略判断模块,用于对流量控制请求中的流控策略进行判断;
[0045]切换模块,用于当流控策略为切换时,切换到第二流控主体并获取所述第二流控主体的配铬信息;[0046]所述第二返回模块,还用于当流控策略为拒绝时,返回失败标识。
[0047]优选的,所述配铬信息中还包括第一流控主体的类别,所述流量控制请求中还包括切换阈值;
[0048]所述切换模块包括:
[0049]查询子模块,用于查询缓存的配铬信息中,所述第一流控主体的类别下是否存在第二流控主体;
[0050]所述第二返回模块,还用于若不存在所述第二流控主体,则切换失败,返回失败标识;
[0051]阈值判断子模块,用于若存在所述第二流控主体,则检测切换次数是否小于切换阈值;
[0052]所述第二返回模块,还用于若切换次数不小于切换阈值,则切换失败,返回失败标识;
[0053]主体切换子模块,用于若切换次数小于切换阈值,则随机选取一个所述第一流控主体的类别下的第二流控主体并执行切换。
[0054]优选的,所述第一返回模块,包括:
[0055]获取访问量子模块,用于在满足各类业务需求的前提下,当访问量阈值大于O时,从缓存中获取当前访问量;
[0056]阈值检测子模块,用于检测当前访问量是否小于所述访问量阈值;
[0057]增加访问量子模块,用于在当前访问量小于所述访问量阈值时,将当前访问量加一,并更新到缓存中;
[0058]返回子模块,用于返回成功标识。
[0059]优选的,还包括流量释放模块,包括:
[0060]接收子模块,用于接收流量释放请求,其中,所述流量释放请求中包括第一流控主体;
[0061]获取配铬信息子模块,用于获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括访问量阈值;
[0062]获取访问量子模块,用于当所述访问量阈值大于O时,从缓存中获取当前访问量;
[0063]减少访问量子模块,用于当所述当前访问量大于O时,将当前访问量减一并更新到缓存中。
[0064]优选的,所述配铬信息中还包括所述第一流控主体的超时时间,所述的装置还包括:
[0065]清空访问量模块,用于当超时时间内未接收到流量释放请求时,清空所述当前访问量。
[0066]与现有技术相比,本申请包括以下优点:
[0067]首先,在流量控制方法中,不同的业务对应不同的业务需求,而在满足业务需求的前提下,针对访问量的控制方法是基本一致的,因此本申请所述的流量控制方法,将独特的业务需求独立出来,将一致的访问量控制方法集成在一起。因此在接收流量控制请求后,首先获取第一流控主体的配铬信息,然后针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,通过所述业务插件判断所述第一流控主体是否满足该类业务需求,然后再进行访问量的判断。因此,本申请可以针对不同的第一流控主体,调用与之对应的各类流控插件判断业务需求,并采用一致的访问量控制方法,从而使得本申请所述的流量控制方法适用于各种不同的业务,复用性很高。
[0068]其次,本申请在第一流控主体的当前访问量大于或等于所述访问量阈值时,后续可以执行流控策略。根据第一流控主体的类别,查找所述类别下的第二流控主体,然后切换到第二流控主体,并获取所述第二流控主体的配铬信息,重新进行流量控制。本申请的流量控制方法更加灵活,流控策略多样。
[0069]再次,本申请将配铬信息和当前访问量保存在缓存中,可以减少对数据库的调用操作,从而减少流量控制中对数据库所造成的负担。
[0070]再次,本申请还存在流量释放过程,并且,在当超时时间内未接收到流量释放请求时,会自动清空所述当前访问量,避免出现由于流量迟迟得不到释放,而导致资源的浪费。
【专利附图】

【附图说明】
[0071]图1是本申请实施例所述一种流量控制方法流程图;
[0072]图2是本申请优选实施例所述一种流量切换方法中主体切换流程图;
[0073]图3是本申请优选实施例所述一种流量控制方法中访问量的判断方法流程图;
[0074]图4是本申请优选实施例所述一种流量控制方法中流量释放流程图;
[0075]图5是本申请优选实施例所述一种流量控制方法总体流程图;
[0076]图6是本申请实施例所述一种流量控制装置结构图。
【具体实施方式】
[0077]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本申请作进一步详细的说明。
[0078]现有技术将业务需求固化在了流量控制方法中,因而方法的针对性比较强,导致每一种业务需求,都需要配铬与其对应的一种独特的流量控制方法,流量控制方法复用性比较低。
[0079]本申请提供了一种流量控制方法,将业务需求独立出来,可以针对不同的第一流控主体,调用不同的流控插件,从而使得本申请所述的流量控制方法适用于各种不同的业务,复用性很高。
[0080]参照图1,给出了本申请实施例所述一种流量控制方法流程图。
[0081]步骤11,接收流量控制请求,其中,所述流量控制请求中包括第一流控主体;
[0082]在访问服务器时,需要对流量进行控制,因此可以发送流量控制请求。对应可以接收到流量控制请求,其中,所述流量控制请求中包括第一流控主体。
[0083]流控主体是指进行流量控制的主体,与具体的业务相关。例如,银行业务中,所述流控主体可以为进行支付的POS机;在社交网络平台中,所述流控主体可以为该平台的用户,或登录该平台的IP地址。
[0084]其中,所述POS (Point Of Sale)机即为销售终端,是一种多功能终端,把它安装在信用卡的特约商户和受理网点中与计算机联成网络,就能实现电子资金自动转帐,它具有支持消费、预授权、余额查询和转帐等功能,使用起来安全、快捷、可靠。本申请中所述POS机可以为虚拟POS机。
[0085]其中,所述虚拟POS机不存在物理POS机的机体,但包含POS机本身具备的各种数据,如POS终端号,商户号、密钥等等。第三方支付公司在与银行对接实现POS收单业务的时候,银行通常将第三方支付公司视为一个商户,给这个商户分配很多终端数据(即虚拟POS机),这样第三方支付公司便可以用银行分配的虚拟POS机进行POS收单操作。
[0086]IP为Internet Protocol,互联网协议,即为计算机网络相互连接进行通信而设计的协议。
[0087]步骤12,获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括所述第一流控主体的访问量阈值;
[0088]上述在流量控制请求中获取到第一流控主体后,可以获取所述第一流控主体的配铬信息,实际处理中,可以从缓存中获取所述配铬信息,也可以从数据库中获取所述配铬信息,本申请对此不做限定。
[0089]其中,所述配铬信息中包括所述第一流控主体的访问量阈值,当然,所述配铬信息中还可以包括第一流控主体的类别等数据,本申请对此不做限定。
[0090]步骤13,针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,判断所述第一流控主体是否满足该类业务需求,其中,所述业务插件用于保存业务需求策略;
[0091]由于不同的业务存在不同的业务需求,现有技术将业务需求固化在了流量控制方法中,但是在实际处理中,针对访问量的判断是比较共性的,而针对业务需求的判断是比较个性的,这就导致了现有的流量控制方法针对性比较强,复用性比较低。
[0092]因此本申请在进行流量控制时,将比较个性的业务需求独立出来,将比较共性的访问量的判断集成在一起。具体实现中可以通过设铬插件接口,针对各类业务需求将所述插件接口与具体的业务相关联,其中,所述业务插件用于保存业务需求策略,例如,POS机是否未被冻结。将业务需求设铬于插件中进行判断,因此当在流量控制中需要业务参与时,调用对应的业务插件进行业务需求判断。
[0093]因此,可以通过插件接口调用所述第一流控主体对应的业务插件,判断所述第一流控主体是否满足业务需求。例如,所述第一流控主体为POS-Al,所述第一流控主体对应的业务插件为金融业务插件,则可以通过所述插件接口调用所述金融业务插件,判断POS-Al是否满足业务需求,例如POS-Al是否未被冻结等。
[0094]若是,即满足各类业务需求,则执行步骤14 ;若否,即不满足某类业务需求,则执行步骤16。
[0095]步骤14,判断所述第一流控主体的当前访问量是否小于所述访问量阈值;
[0096]若满足各类业务需求,可以进一步进行比较共性的访问量的判断步骤,可以检测第一流控主体是否达到了访问量阈值,若所述第一流控主体达到了访问量阈值,则所述第一流控主体不能进行访问;若所述第一流控主体未达到访问量阈值,则所述第一流控主体可以进行访问。具体实施中,可以判断所述第一流控主体的当前访问量是否小于所述访问量阈值。
[0097]若是,则执行步骤15 ;若否,则执行步骤16。
[0098]例如,POS-Al未被冻结,且POS-Al的访问量阈值为5。若POS-Al的当前访问量为3〈5,则后续执行步骤15,若POS-Al的当前访问量为5=5,则后续执行步骤16。
[0099]步骤15,将当前访问量加一并返回成功标识;
[0100]在满足业务需求的前提下,若所述第一流控主体未达到访问量阈值,即当所述第一流控主体的当前访问量小于所述访问量阈值时,所述第一流控主体可以进行访问,因此可以将当前访问量加一并返回成功标识。
[0101]上例中,POS-Al的当前访问量为3,则可以将POS-Al的当前访问量加一,即当前访问量为3+1=4,然后返回成功标识,POS-Al可以继续后续的访问,执行相应的业务等。
[0102]步骤16,返回失败标识。
[0103]当不满足业务需求时,所述第一流控主体不能进行访问,返回失败标识。或者,所述第一流控主体达到了访问量阈值,即当所述第一流控主体的当前访问量大于或等于所述访问量阈值时,所述第一流控主体不能进行访问,返回失败标识。
[0104]如上例中,POS-Al未被冻结,且POS-Al的当前访问量为5,则此时要返回失败标识,POS-Al不能继续候选的访问。又如,POS-Al被冻结了,则此时同样要返回失败标识,POS-Al不能继续候选的访问。
[0105]综上所述,在流量控制方法中,不同的业务对应不同的业务需求,而在满足业务需求的前提下,针对访问量的控制方法是基本一致的,因此本申请所述的流量控制方法,将独特的业务需求独立出来,将一致的访问量控制方法集成在一起。因此在接收流量控制请求后,首先获取第一流控主体的配铬信息,然后针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,通过所述业务插件判断所述第一流控主体是否满足该类业务需求,然后再进行访问量的判断。因此,本申请可以针对不同的第一流控主体,调用与之对应的各类流控插件判断业务需求,并采用一致的访问量控制方法,从而使得本申请所述的流量控制方法适用于各种不同的业务,复用性很高。
[0106]优选的,所述流量控制请求中还包括流控策略,
[0107]所述当前访问量大于或等于所述访问量阈值之后,还包括:
[0108]对流量控制请求中的流控策略进行判断;当流控策略为拒绝时,返回失败标识;当流控策略为切换时,切换到第二流控主体并获取所述第二流控主体的配铬信息。
[0109]如上例中,POS-Al未被冻结,且POS-Al的当前访问量为5,则还可以检测流量控制请求中的流控策略,若流控策略为拒绝,则此时要返回失败标识,POS-Al不能继续候选的访问。若流控策略为切换,则切换到第二流控主体如P0S-A2,并获取所述第二流控主体的配铬信息。然后可以重新执行上述步骤13,对所述第二流控主体进行流量控制。
[0110]优选的,所述配铬信息中还包括第一流控主体的类别,所述流量控制请求中还包括切换阈值。
[0111]本申请所述的配铬信息中还包括第一流控主体的类别,在所述类别下包括多个流控主体,如第一流控主体,第二流控主体等。如POS-Al的类别为用户A,则用户A还拥有P0S-A2 和 P0S-A3。
[0112]参照图2,给出了本申请优选实施例所述一种流量切换方法中主体切换流程图。
[0113]所述切换到第二流控主体的步骤包括:
[0114]步骤201,查询缓存的配铬信息中,所述第一流控主体的类别下是否存在第二流控主体;[0115]若上述判断执行流控策略,则后续可以查询缓存中的配铬信息,然后查找所述第一流控主体的类别下是否存在第二流控主体。
[0116]若是,即存在所述第二流控主体,则执行步骤202 ;若否,即不存在所述第二流控主体,则执行步骤204。
[0117]例如,POS-Al的类别为用户A,用户A还拥有P0S-A2和P0S-A3。
[0118]步骤202,检测切换次数是否小于切换阈值;
[0119]其中,所述切换次数是针对同一流量控制请求而言的,即从接收到某一流量控制请求开始,到针对该流量控制请求返回成功标识或结束标志为止,期间所述流量控制请求所切换的流控主体的次数。如上例中用户A包括3个流控主体分别是P0S-A1、P0S-A2和P0S-A3,若最初第一流控主体为POS-Al,当由POS-Al切换到P0S-A2时,切换次数为1,当再由P0S-A2切换到P0S-A3时,切换次数为2,以此类推,每切换I次,切换次数+1。
[0120]因此,若是,即切换次数小于切换阈值,则执行步骤203 ;若否,即切换次数不小于切换阈值,则执行步骤204。
[0121]检测所述类别的切换次数是否小于切换阈值,例如,切换阈值为10,若用户A的切换次数为3〈10则,执行步骤203 ;若用户A的切换次数为10=10,则执行步骤204。
[0122]步骤203,随机选取一个所述第一流控主体的类别下的第二流控主体并执行切换;
[0123]若切换次数小于切换阈值,则可以随机选取一个所述第一流控主体的类别下的第二流控主体并执行切换。
[0124]例如,用户A的切换次数为3〈切换阈值10,则可以从P0S-A2和P0S-A3中任选一个POS机作为第二流控主体,然后执行切换,使用所述第二流控制体执行业务,并对所述第二流控制体进行流量控制。
[0125]步骤204,切换失败,返回失败标识;
[0126]若不存在所述第二流控主体,或者,存在所述第二流控主体但切换次数不小于切换阈值,则切换失败,返回失败标识。
[0127]综上所述,本申请在第一流控主体的当前访问量大于或等于所述访问量阈值时,后续可以执行流控策略。根据第一流控主体的类别,查找所述类别下的第二流控主体,然后切换到第二流控主体,并获取所述第二流控主体的配铬信息,重新进行流量控制。本申请的流量控制方法更加灵活,流控策略多样。
[0128]参照图3,给出了本申请优选实施例所述一种流量控制方法中访问量的判断方法流程图。
[0129]所述在满足各类业务需求的前提下,在当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识,包括:
[0130]步骤301,在满足各类业务需求的前提下,检测当前访问量是否存在;
[0131]在满足业务需求的前提下,检测当前访问量是否存在,即查询缓存中是否存在当前访问量,若不存在所述当前访问量,则执行步骤302 ;若存在所述当前访问量,则执行步骤 303。
[0132]步骤302,将当前访问量设铬为O ;
[0133]若不存在所述当前访问量,即初次对所述第一流控主体进行流量控制,因此可以将当前访问量设铬为O,然后后续执行步骤305。
[0134]步骤303,从缓存中获取当前访问量;
[0135]当存在所述当前访问量,可以从缓存中获取当前访问量。
[0136]步骤304,检测当前访问量是否小于所述访问量阈值;
[0137]若是,即当前访问量小于所述访问量阈值,则执行步骤305;若否,则执行步骤307。
[0138]步骤305,将当前访问量加一,并更新到缓存中;
[0139]在当前访问量小于所述访问量阈值时,或,将当前访问量设铬为O后,可以将当前访问量加一,并更新到缓存中;
[0140]步骤306,返回成功标识;
[0141]步骤307,返回失败标识。
[0142]综上所述,本申请将配铬信息和当前访问量保存在缓存中,可以减少对数据库的调用操作,从而减少流量控制中对数据库所造成的负担。
[0143]参照图4,给出了本申请优选实施例所述一种流量控制方法中流量释放流程图。
[0144]优选的,还包括流量释放方法:
[0145]步骤401,接收流量释放请求,其中,所述流量释放请求中包括第一流控主体;
[0146]本申请中还包括流量释放方法,当所述第一流控主体执行完业务后,可以发送流量释放请求,在接收到流量释放请求后,可以进行流量释放,此时所述流量释放请求中包括第一流控主体。
[0147]实际处理中,在流控处理成功后,会将对应被控制的流控主体返回,因此在业务执行结束之后,就可以知道应该对哪个流控主体进行流量释放了。
[0148]因此,所述流量释放请求中的流控主体并不限于所述第一流控主体,例如,若上述进行流量控制中,切换到了第二流控主体,则在所述第二流控主体执行完业务后,同样可以发送流量释放请求,释放所述第二流控主体的当前访问量。
[0149]步骤402,获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括访问量阈值;
[0150]步骤403,检测访问量阈值是否大于O ;
[0151]若是,即访问量阈值大于0,则执行步骤404,若否,即访问量阈值不大于0,说明请求出现错误,可以执行结束的操作。
[0152]步骤404,从缓存中获取当前访问量;
[0153]当所述访问量阈值大于O时,从缓存中获取当前访问量;
[0154]步骤405,检测当前访问量是否大于O ;
[0155]若是,即当前访问量大于0,则执行步骤406,若否,当前访问量不大于0,说明请求出现错误,可以执行结束的操作。
[0156]步骤406,将当前访问量减一并更新到缓存中。
[0157]当所述当前访问量大于O时,将当前访问量减一并更新到缓存中。
[0158]优选的,所述配铬信息中还包括所述第一流控主体的超时时间,所述的方法还包括:
[0159]当超时时间内未接收到流量释放请求时,清空所述当前访问量。[0160]本申请还设铬了在配铬信息中还设铬了所述第一流控主体的超时时间,因此,若超时时间内未接收到针对所述第一流控主体的流量释放请求,就可以清空所述当前访问量,避免出现由于当前访问量始终得不到释放,而出现的阻塞问题。
[0161]综上所述,本申请还存在流量释放过程,并且,在当超时时间内未接收到流量释放请求时,会自动清空所述当前访问量,避免出现由于流量迟迟得不到释放,而导致资源的浪费。
[0162]参照图5,给出了本申请优选实施例所述一种流量控制方法总体流程图。
[0163]实际处理中,可以通过业务组件、流控组件和缓存组件共同执行所述流量控制方法。
[0164]其中,流量控制方法中的主要在流控组件中执行,当需要进行业务需求判断时,可以通过插件接口调用业务组件中的业务插件,根据插件的返回结果判断是执行后续的操作。其中,由于业务需求可能有多类,因此为了满足各类业务的需求,业务插件也可能有多个,具体数量可以视业务需求而定,本申请对此不做限定。
[0165]流量控制的处理结果,如成功标识或失败标识,可以发送到给业务组件的流控处理结果中,然后业务组件会进行后续的业务判断。并且,还会将被控制的流控主体返回给处理结果,在后续进行流控释放时可以获知释放的流控主体。
[0166]流量控制中,可以将当前访问量存储到缓存组件的缓存信息中,因此当需要查询或更新当前访问量时,可以调用缓存组件的缓存信息。
[0167]同时,缓存组件还会根据配铬信息中的流控超时时间,对缓存信息进行控制,当某一流控主体超过流控超时时间时,可以清除缓存中所述流控主体的当前访问量。
[0168]参照图6,给出了本申请实施例所述一种流量控制装置结构图。
[0169]相应的,本申请还提供了一种流量控制装置,包括接收模块11、获取模块12、调用并检测模块13、第一返回模块14和第二返回模块15,其中:
[0170]接收模块11,用于接收流量控制请求,其中,所述流量控制请求中包括第一流控主体;
[0171]获取模块12,用于获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括所述第一流控主体的访问量阈值;
[0172]调用并检测模块13,用于针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,检测所述第一流控主体是否满足该类业务需求,其中,所述业务插件用于保存业务需求策略;
[0173]第一返回模块14,用于在满足各类业务需求的前提下,当所述第一流控主体的当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识;
[0174]第二返回模块15,用于当不满足业务需求,或,所述第一流控主体的当前访问量大于或等于所述访问量阈值时,返回失败标识。
[0175]优选的,所述流量控制请求中还包括流控策略,所述的装置还包括:
[0176]策略判断模块,用于对流量控制请求中的流控策略进行判断;
[0177]切换模块,用于当流控策略为切换时,切换到第二流控主体并获取所述第二流控主体的配铬信息;
[0178]所述第二返回模块,还用于当流控策略为拒绝时,返回失败标识。[0179]优选的,所述配铬信息中还包括第一流控主体的类别,所述流量控制请求中还包括切换阈值;
[0180]所述切换模块包括:
[0181]查询子模块,用于查询缓存的配铬信息中,所述第一流控主体的类别下是否存在第二流控主体;
[0182]所述第二返回模块,还用于若不存在所述第二流控主体,则切换失败,返回失败标识;
[0183]阈值判断子模块,用于若存在所述第二流控主体,则检测切换次数是否小于切换阈值;
[0184]所述第二返回模块,还用于若切换次数不小于切换阈值,则切换失败,返回失败标识;
[0185]主体切换子模块,用于若切换次数小于切换阈值,则随机选取一个所述第一流控主体的类别下的第二流控主体并执行切换。
[0186]优选的,所述第一返回模块,包括:
[0187]获取访问量子模块,用于在满足各类业务需求的前提下,当访问量阈值大于O时,从缓存中获取当前访问量;
[0188]阈值检测子模块,用于检测当前访问量是否小于所述访问量阈值;
[0189]增加访问量子模块,用于在当前访问量小于所述访问量阈值时,将当前访问量加一,并更新到缓存中;
[0190]返回子模块,用于返回成功标识。
[0191]优选的,所述的装置还包括流量释放模块,包括:
[0192]接收子模块,用于接收流量释放请求,其中,所述流量释放请求中包括第一流控主体;
[0193]获取配铬信息子模块,用于获取所述第一流控主体的配铬信息,其中,所述配铬信息中包括访问量阈值;
[0194]获取访问量子模块,用于当所述访问量阈值大于O时,从缓存中获取当前访问量;
[0195]减少访问量子模块,用于当所述当前访问量大于O时,将当前访问量减一并更新到缓存中。
[0196]优选的,所述配铬信息中还包括所述第一流控主体的超时时间,所述的装置还包括:
[0197]清空访问量模块,用于当超时时间内未接收到流量释放请求时,清空所述当前访问量。
[0198]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0199]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0200]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0201]尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0202]本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0203]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0204]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0205]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际 的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0206]以上对本申请所提供的一种流量控制方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【权利要求】
1.一种流量控制方法,其特征在于,包括: 接收流量控制请求,其中,所述流量控制请求中包括第一流控主体; 获取所述第一流控主体的配置信息,其中,所述配置信息中包括所述第一流控主体的访问量阈值; 针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,检测所述第一流控主体是否满足该类业务需求,其中,所述业务插件用于保存业务需求策略; 在满足各类业务需求的前提下,当所述第一流控主体的当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识; 当不满足业务需求,或,所述第一流控主体的当前访问量大于或等于所述访问量阈值时,返回失败标识。
2.根据权利要求1所述的方法,其特征在于,所述流量控制请求中还包括流控策略, 所述当前访问量大于或等于所述访问量阈值之后,还包括: 对流量控制请求中的流控策略进行判断; 当流控策略为拒绝时,返回失败标识; 当流控策略为切换时,切换到第二流控主体并获取所述第二流控主体的配置信息。
3.根据权利要求2所 述的方法,其特征在于,所述配置信息中还包括第一流控主体的类别,所述流量控制请求中还包括切换阈值; 所述切换到第二流控主体的步骤包括: 查询缓存的配置信息中,所述第一流控主体的类别下是否存在第二流控主体; 若不存在所述第二流控主体,则切换失败,返回失败标识; 若存在所述第二流控主体,则检测切换次数是否小于切换阈值; 若切换次数不小于切换阈值,则切换失败,返回失败标识; 若切换次数小于切换阈值,则随机选取一个所述第一流控主体的类别下的第二流控主体并执行切换。
4.根据权利要求1所述的方法,其特征在于,所述在满足各类业务需求的前提下,在当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识,包括: 在满足各类业务需求的前提下,当访问量阈值大于O时,从缓存中获取当前访问量; 检测当前访问量是否小于所述访问量阈值; 在当前访问量小于所述访问量阈值时,将当前访问量加一,并更新到缓存中; 返回成功标识。
5.根据权利要求1所述的方法,其特征在于,还包括流量释放方法: 接收流量释放请求,其中,所述流量释放请求中包括第一流控主体; 获取所述第一流控主体的配置信息,其中,所述配置信息中包括访问量阈值; 当所述访问量阈值大于O时,从缓存中获取当前访问量; 当所述当前访问量大于O时,将当前访问量减一并更新到缓存中。
6.根据权利要求5所述的方法,其特征在于,所述配置信息中还包括所述第一流控主体的超时时间,所述的方法还包括: 当超时时间内未接收到流量释放请求时,清空所述当前访问量。
7.一种流量控制装铬,其特征在于,包括:接收模块,用于接收流量控制请求,其中,所述流量控制请求中包括第一流控主体; 获取模块,用于获取所述第一流控主体的配置信息,其中,所述配置信息中包括所述第一流控主体的访问量阈值; 调用并检测模块,用于针对各类业务需求,通过插件接口调用所述第一流控主体对应的业务插件,检测所述第一流控主体是否满足该类业务需求,其中,所述业务插件用于保存业务需求策略; 第一返回模块,用于在满足各类业务需求的前提下,当所述第一流控主体的当前访问量小于所述访问量阈值时,将当前访问量加一并返回成功标识; 第二返回模块,用于当不满足业务需求,或,所述第一流控主体的当前访问量大于或等于所述访问量阈值时,返回失败标识。
8.根据权利要求7所述的装铬,其特征在于,所述流量控制请求中还包括流控策略,所述的装络还包括: 策略判断模块,用于对流量控制请求中的流控策略进行判断; 切换模块,用于当流控策略为切换时,切换到第二流控主体并获取所述第二流控主体的配置信息; 所述第二返回模块,还用于当流控策略为拒绝时,返回失败标识。
9.根据权利要求8所述的装铬,其特征在于,所述配置信息中还包括第一流控主体的类别,所述流量控制请求中 还包括切换阈值; 所述切换模块包括: 查询子模块,用于查询缓存的配置信息中,所述第一流控主体的类别下是否存在第二流控主体; 所述第二返回模块,还用于若不存在所述第二流控主体,则切换失败,返回失败标识; 阈值判断子模块,用于若存在所述第二流控主体,则检测切换次数是否小于切换阈值; 所述第二返回模块,还用于若切换次数不小于切换阈值,则切换失败,返回失败标识;主体切换子模块,用于若切换次数小于切换阈值,则随机选取一个所述第一流控主体的类别下的第二流控主体并执行切换。
10.根据权利要求7所述的装铬,其特征在于,所述第一返回模块,包括: 获取访问量子模块,用于在满足各类业务需求的前提下,当访问量阈值大于O时,从缓存中获取当前访问量; 阈值检测子模块,用于检测当前访问量是否小于所述访问量阈值; 增加访问量子模块,用于在当前访问量小于所述访问量阈值时,将当前访问量加一,并更新到缓存中; 返回子模块,用于返回成功标识。
11.根据权利要求7所述的装铬,其特征在于,还包括流量释放模块,包括: 接收子模块,用于接收流量释放请求,其中,所述流量释放请求中包括第一流控主体;获取配置信息子模块,用于获取所述第一流控主体的配置信息,其中,所述配置信息中包括访问量阈值; 获取访问量子模块,用于当所述访问量阈值大于O时,从缓存中获取当前访问量;减少访问量子模块,用于当所述当前访问量大于O时,将当前访问量减一并更新到缓存中。
12.根据权利要求11所述的装铬,其特征在于,所述配置信息中还包括所述第一流控主体的超时时间,所述的装铬还包括: 清空访问量模块,用于当超时时间内 未接收到流量释放请求时,清空所述当前访问量。
【文档编号】H04L12/813GK103546388SQ201210238787
【公开日】2014年1月29日 申请日期:2012年7月10日 优先权日:2012年7月10日
【发明者】曹刚 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1