CN105635124B - 流量控制方法和装置 - Google Patents
流量控制方法和装置 Download PDFInfo
- Publication number
- CN105635124B CN105635124B CN201510990110.1A CN201510990110A CN105635124B CN 105635124 B CN105635124 B CN 105635124B CN 201510990110 A CN201510990110 A CN 201510990110A CN 105635124 B CN105635124 B CN 105635124B
- Authority
- CN
- China
- Prior art keywords
- user
- request
- authorization
- interface
- authorized
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Abstract
本公开是关于一种流量控制方法和装置,涉及通信技术领域。所述方法包括:接收用户请求;根据当前剩余的授权名额判断所述用户请求是否能够获得授权,当所述当前剩余的授权名额大于0时,判断所述用户请求能够获得授权,当所述当前剩余的授权名额等于0时,判断所述用户请求不能够获得授权,所述授权名额的最大值为N,每授权一个用户请求时,所述授权名额减一,所述授权名额每M秒加一,N为正整数,M为正数;当判断所述用户请求能够获得授权时,处理所述用户请求,实现对web接口流量的平稳控制。
Description
技术领域
本公开涉及数据处理领域,尤其涉及一种流量控制方法和装置。
背景技术
为了防止服务器受到网络攻击或负荷过大,通常会服务器的web接口进行流量限制。
目前,web(网络)接口通常采用如下方式进行流量限制:设置一个单位时间(如10s)内的最大访问量,并维护一个单位时间里的计数器。当用户请求到达时,先判断单位时间是否已经超时,如果单位时间未超时,先将计数器加1,然后判断计数器的值是否超过最大访问量,如果计数器的值超过最大访问量,则拒绝用户请求,如果计数器的值未超过最大访问量,则允许用户请求;如果单位时间已经超时,则重置计数器为0,然后将计数器加1,并允许用户请求。
但上述流量控制在两个单位时间的临界处存在较大缺陷,可能会导致接口在短时间内处理过量的用户请求。例如:设置单位时间10s内的最大访问量为1万,在第一个单位时间的最后一秒里的用户请求数为1万,在第二个单位时间内的第一秒里的用户请求数也是1万,由于超时重置发生在两个单位时间之间,所以这2万个用户请求都将被允许,也就是说接口要在2s里处理2万个用户请求,大大超过原本设置的10s处理1万个用户请求的限制。
发明内容
为克服相关技术中存在的问题,本公开提供一种流量控制方法和装置。
根据本公开实施例的第一方面,提供一种流量控制方法,所述方法包括:
接收用户请求;
根据当前剩余的授权名额判断所述用户请求是否能够获得授权,当所述当前剩余的授权名额大于0时,判断所述用户请求能够获得授权,当所述当前剩余的授权名额等于0时,判断所述用户请求不能够获得授权,所述授权名额的最大值为N,每授权一个用户请求时,所述授权名额减一,所述授权名额每M秒加一,N为正整数,M为正数;
当判断所述用户请求能够获得授权时,处理所述用户请求。
在本公开中,在收到用户请求时,根据当前剩余的授权名额判断用户请求是否能够获得授权,从而进行对该用户请求进行处理。一方面,由于授权名额的最大值为N,避免了web接口同时处理过多的用户请求,另一方面,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,保证web接口在各时间段内处理的用户请求数较为平均,通过上述两个方面,可以保证对web接口的流量达到平稳控制。
根据本公开第一方面的一种实现方式,所述根据当前剩余的授权名额判断所述用户请求是否能够获得授权,包括:
查看预设计数器的值,所述预设计数器的值用于表示剩余的授权名额,所述计数器的值每M秒加一,所述计数器的最大值为N,每授权一个用户请求所述计数器的值减一;
如果所述计数器的值大于0,则判断所述用户请求能够获得授权;如果所述计数器的值等于0,则判断所述用户请求不能够获得授权。
根据本公开第一方面的另一种实现方式,所述根据当前剩余的授权名额判断所述用户请求是否能够获得授权,包括:
从预设的队列或者栈中获取授权消息,所述队列或栈用于保存接收到的授权消息,每个所述授权消息用于表示一个授权名额,所述队列或者栈每M秒收到一个所述授权消息,所述队列或者栈的容量为N;
如果获取到所述授权消息,则判断所述用户请求能够获得授权;如果未获取到所述授权消息,则判断所述用户请求不能够获得授权。
在上述实现方式中,提供了三种授权判断方式,使得该方案的实现可以多样化。
根据本公开第一方面的另一种实现方式,所述授权消息包括接口的标识,所述接口的标识用于标识所述授权消息对特定接口的用户请求进行授权。
根据本公开第一方面的另一种实现方式,所述根据当前剩余的授权名额判断所述用户请求是否能够获得授权,还包括:
当获取到所述授权消息后,根据所述授权消息中接口的标识,判断所述授权消息是否能对接收到的所述用户请求进行授权;
如果所述授权消息中接口的标识与所述用户请求所请求的接口对应,则判断所述授权消息能对所述用户请求进行授权;如果所述授权消息中接口的标识与所述用户请求所请求的接口不对应,则判断所述授权消息不能对所述用户请求进行授权。
在上述实现方式中,通过在授权消息中设计接口的标识,从而可以对不同的接口分别进行授权,能够实现对不同接口分别进行控制。
根据本公开第一方面的另一种实现方式,所述方法还包括:
当收到设定接口的用户请求时,将具有所述设定接口的标识的授权消息放到队列的队首,以使所述设定接口的用户请求获得授权。
在该实现方式中,通过将设定接口的标识授权消息调换到队首,从而可以对设定接口的用户请求进行优先处理。
根据本公开第一方面的另一种实现方式,所述方法还包括:
当接收所述用户请求时,根据所述用户请求中的用户标识,判断发送所述用户请求的用户是否为白名单用户,所述用户请求包括用户标识;
当发送所述用户请求的用户为白名单用户时,处理所述用户请求。
在该实现方式中,当判断用户为白名单用户时,直接转发用户请求,满足一些业务中贵宾VIP用户的设置。
根据本公开第一方面的另一种实现方式,所述方法还包括:
当发送所述用户请求的用户不是白名单用户时,判断所述用户请求所请求的接口是否为限制接口;
当所述用户请求所请求的接口不是限制接口时,处理所述用户请求;
当所述用户请求的接口是限制接口时,判断所述用户请求是否能够获得授权。
在该实现方式中,可以对用户请求的接口进行判断,接口包括限制接口和非限制接口,如果是非限制接口,则直接转发用户请求,使得该方案可以只对某些接口进行流量控制。
根据本公开第一方面的另一种实现方式,所述方法还包括:
当判断所述用户请求不能够获得授权时,丢弃所述用户请求。
根据本公开实施例的第二方面,提供一种流量控制装置,所述装置包括:
接收模块,用于接收用户请求;
授权模块,用于根据当前剩余的授权名额判断所述用户请求是否能够获得授权,当所述当前剩余的授权名额大于0时,判断所述用户请求能够获得授权,当所述当前剩余的授权名额等于0时,判断所述用户请求不能够获得授权,所述授权名额的最大值为N,每授权一个用户请求时,所述授权名额减一,所述授权名额每M秒加一,N为正整数,M为正数;
处理模块,用于当判断所述用户请求能够获得授权时,处理所述用户请求。
根据本公开第二方面的一种实现方式,所述授权模块,用于:
查看预设计数器的值,所述预设计数器的值用于表示剩余的授权名额,所述计数器的值每M秒加一,所述计数器的最大值为N,每授权一个用户请求所述计数器的值减一;
如果所述计数器的值大于0,则判断所述用户请求能够获得授权;如果所述计数器的值等于0,则判断所述用户请求不能够获得授权。
根据本公开第二方面的另一种实现方式,所述授权模块,用于:
从预设的队列或者栈中获取授权消息,所述队列或栈用于保存接收到的授权消息,每个所述授权消息用于表示一个授权名额,所述队列或者栈每M秒收到一个所述授权消息,所述队列或者栈的容量为N;
如果获取到所述授权消息,则判断所述用户请求能够获得授权;如果未获取到所述授权消息,则判断所述用户请求不能够获得授权。
根据本公开第二方面的另一种实现方式,所述授权消息包括接口的标识,所述接口的标识用于标识所述授权消息对特定接口的用户请求进行授权。
根据本公开第二方面的另一种实现方式,所述授权模块,还用于:
当获取到所述授权消息后,根据所述授权消息中接口的标识,判断所述授权消息是否能对接收到的所述用户请求进行授权;
如果所述授权消息中接口的标识与所述用户请求所请求的接口对应,则判断所述授权消息能对所述用户请求进行授权;如果所述授权消息中接口的标识与所述用户请求所请求的接口不对应,则判断所述授权消息不能对所述用户请求进行授权。
根据本公开第二方面的另一种实现方式,所述授权模块,还用于:
当收到设定接口的用户请求时,将具有所述设定接口的标识的授权消息放到队列的队首,以使所述设定接口的用户请求获得授权。
根据本公开第二方面的另一种实现方式,所述装置还包括:
判断模块,用于当接收所述用户请求时,根据所述用户请求中的用户标识,判断发送所述用户请求的用户是否为白名单用户,所述用户请求包括用户标识;
所述处理模块,还用于当发送所述用户请求的用户为白名单用户时,处理所述用户请求。
根据本公开第二方面的另一种实现方式,所述判断模块,还用于:
当发送所述用户请求的用户不是白名单用户时,判断所述用户请求所请求的接口是否为限制接口;当所述用户请求的接口是限制接口时,判断所述用户请求是否能够获得授权;
所述处理模块,还用于当所述用户请求所请求的接口不是限制接口时,处理所述用户请求。
根据本公开第二方面的另一种实现方式,所述处理模块,还用于当判断所述用户请求不能够获得授权时,丢弃所述用户请求。
根据本公开实施例的第三方面,提供一种流量控制装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收用户请求;
根据当前剩余的授权名额判断所述用户请求是否能够获得授权,当所述当前剩余的授权名额大于0时,判断所述用户请求能够获得授权,当所述当前剩余的授权名额等于0时,判断所述用户请求不能够获得授权,所述授权名额的最大值为N,每授权一个用户请求时,所述授权名额减一,所述授权名额每M秒加一,N为正整数,M为正数;
当判断所述用户请求能够获得授权时,处理所述用户请求。
本公开的实施例提供的技术方案可以包括以下有益效果:
在本公开中,在收到用户请求时,根据当前剩余的授权名额判断用户请求是否能够获得授权,从而进行对该用户请求进行处理。一方面,由于授权名额的最大值为N,避免了web接口同时处理过多的用户请求,另一方面,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,保证web接口在各时间段内处理的用户请求数较为平均,通过上述两个方面,可以保证对web接口的流量达到平稳控制。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的应用场景图。
图2是根据一示例性实施例示出的一种流量控制方法的流程图。
图3是根据一示例性实施例示出的一种流量控制方法的流程图。
图4是根据一示例性实施例示出的一种流量控制装置的框图。
图5是根据一示例性实施例示出的一种流量控制装置的框图。
图6是根据一示例性实施例示出的一种流量控制装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了便于实施例的描述,下面先简单介绍一下本公开中实施例的应用场景,参见图1,该场景中包括用户设备1和服务器2,服务器2上配置有一个或者多个web接口,不同的服务器2可以配置不同类型的web接口。用户设备1通过无线或者有线的方式与服务器2连接,且可以通过用户请求向web接口请求相应服务或者数据。其中,用户设备1包括但不限于移动终端、电脑等。在该应用场景中,服务器2可以同时连接多个用户设备1。
为了解决现有技术中流量控制方案存在的缺陷,本申请提供一种流量控制装置,该装置可以是与服务器2相连的一个装置,也可以集成在服务器2中。
需要说明的是,以上所述的设备的种类和数量仅为举例,本公开对此不作限制。
图2是根据一示例性实施例示出的一种流量控制方法的流程图,该方法由流量控制装置执行,参见图2,该方法包括:
在步骤S11中,接收用户请求。
其中,用户请求用于请求服务器提供相应地服务,如视频服务,音频服务,文件传输服务等。
在步骤S12中,根据当前剩余的授权名额判断用户请求是否能够获得授权,当当前剩余的授权名额大于0时,判断用户请求能够获得授权,当当前剩余的授权名额等于0时,判断用户请求不能够获得授权,授权名额的最大值为N,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,N为正整数,M为正数。
例如,授权名额的最大值为1万,即最多每次可以授权1万个用户请求,每千分之一秒新增一个授权名额,但是当授权名额达到最大值时,无法继续增加。
在步骤S13中,当判断用户请求能够获得授权时,处理用户请求。
即当判断用户请求能够获得授权时,按正常逻辑对用户请求进行处理并将处理结果返回给用户。
在本公开中,在收到用户请求时,根据当前剩余的授权名额判断用户请求是否能够获得授权,从而进行对该用户请求进行处理。一方面,由于授权名额的最大值为N,避免了web接口同时处理过多的用户请求,另一方面,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,保证web接口在各时间段内处理的用户请求数较为平均,通过上述两个方面,可以保证对web接口的流量达到平稳控制。
图3是根据一示例性实施例示出的一种流量控制方法的流程图,该方法由流量控制装置执行,参见图3,该方法包括:
在步骤S21中,接收用户请求,用户请求包括用户标识。
在步骤S22中,根据用户请求中的用户标识,判断发送用户请求的用户是否为白名单用户;当发送用户请求的用户为白名单用户时,执行步骤S25;当发送用户请求的用户不是白名单用户时,执行步骤S23。
可选地,判断发送用户请求的用户是否为白名单用户,包括:
通过查找事先存储的白名单,确定用户请求的用户是否为白名单用户。白名单包括白名单用户的用户标识,如果用户请求中的用户标识在该白名单中,则确定该用户为白名单用户,否则,确定该用户不是白名单用户。
可替换地,还可以事先存储黑名单,通过查找事先存储的黑名单,确定用户请求的用户是否为白名单用户。当用户的标识不在该黑名单上时,则确定该用户为白名单用户,否则不是白名单用户。
在步骤S23中,判断用户请求所请求的接口是否为限制接口;当用户请求所请求的接口不是限制接口时,执行步骤S25;当用户请求的接口是限制接口时,执行步骤S24。
具体地,判断用户请求所请求的接口是否为限制接口,可以包括:
根据用户请求中的参数、URL(Uniform Resoure Locator,统一资源定位符)或者HTTP(Hyper Text Transfer Protocol,超文本传输协议)信息,确定用户请求所请求的接口;
根据事先存储的限制接口列表,确定用户请求所请求的接口是否为限制接口。如果用户请求所请求的接口在该限制接口列表中,则确定该用户请求所请求的接口为限制接口,否则,确定该用户请求所请求的接口不是限制接口。
可替换地,还可以事先存储非限制接口列表,通过查找事先存储的非限制接口列表,确定用户请求所请求的接口是否为限制接口。当用户请求所请求的接口不在该非限制接口列表中,则确定该用户请求所请求的接口为限制接口,否则不是限制接口。
在步骤S24中,根据当前剩余的授权名额判断用户请求是否能够获得授权,当当前剩余的授权名额大于0时,判断用户请求能够获得授权,当当前剩余的授权名额等于0时,判断用户请求不能够获得授权,授权名额的最大值为N,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,N为正整数,M为正数。当判断用户请求能够获得授权时,执行步骤S25;当判断用户请求不能够获得授权时,执行步骤S26。
例如,授权名额的最大值为1万,即最多每次可以授权1万个用户请求,每千分之一秒新增一个授权名额,但是当授权名额达到最大值时,无法继续增加。
可选地,N的值可以是web接口在设定时间内可以限制流量,如10s的限制流量1万。M的值可以是在设定时间内限制流量平均分布的时间间隔,等于设定时间除以限制流量,如10s/1万=千分之一秒。
在一种可能的实现方式中,根据当前剩余的授权名额判断用户请求是否能够获得授权,包括:
查看预设计数器的值,预设计数器的值用于表示剩余的授权名额,计数器的值每M秒加一,计数器的最大值为N,每授权一个用户请求计数器的值减一;
如果计数器的值大于0,则判断用户请求能够获得授权;如果计数器的值等于0,则判断用户请求不能够获得授权。
在另一种可能的实现方式中,根据当前剩余的授权名额判断用户请求是否能够获得授权,包括:
从预设的队列或者栈中获取授权消息,队列或栈用于保存接收到的授权消息,每个授权消息用于表示一个授权名额,队列或者栈每M秒收到一个授权消息,队列或者栈的容量为N;
如果获取到授权消息,则判断用户请求能够获得授权;如果未获取到授权消息,则判断用户请求不能够获得授权。
在采用队列或者栈实现时,流量控制装置除了设置有上述队列或者栈外,还设有生成器和消费器。生成器根据设定时间间隔M定时产生授权消息,并生成的授权消息放入队列或者栈中。消费器在用户请求到达时,从队列中获取授权消息。
其中,授权消息包括接口的标识,接口的标识用于标识授权消息对特定接口的用户请求进行授权。
在生成授权消息时,可以根据不同业务的需求,控制每个接口对应的授权消息的生成间隔。
进一步地,根据当前剩余的授权名额判断用户请求是否能够获得授权,还包括:
当获取到授权消息后,根据授权消息中接口的标识,判断授权消息是否能对接收到的用户请求进行授权。如果授权消息中接口的标识与用户请求所请求的接口对应,则判断授权消息能对用户请求进行授权;否则,判断授权消息不能对用户请求进行授权。
进一步地,方法还包括:
当收到设定接口的用户请求时,将具有设定接口的标识的授权消息放到队列的队首,以使设定接口的用户请求获得授权。
可选地,设定接口可以是事先设定好的,也可以是当前业务流量大的接口,本公开对此不做限制。
在步骤S25中,处理用户请求。
即当判断用户请求能够获得授权时,按正常逻辑对用户请求进行处理并将处理结果返回给用户。
在步骤S26中,丢弃用户请求。
可选地,上述流量控制装置由接收层、授权层和业务层三部分组成,接收层用于执行上述步骤S21-S23,授权层用于执行步骤S24和步骤S26,业务层用于执行步骤S25。接收层在获得用户请求后,如果判断用户请求不需要进行授权判断,则直接将用户请求传输给业务层进行处理,如果判断用户请求需要进行授权判断,则将用户请求传输给授权层进行判断;授权层如果判断用户请求能够获得授权,则将用户请求传输给业务层进行处理,如果授权层如果判断用户请求不能够获得授权,则将用户请求丢弃。
在本公开中,在收到用户请求时,根据当前剩余的授权名额判断用户请求是否能够获得授权,从而进行对该用户请求进行处理。一方面,由于授权名额的最大值为N,避免了web接口同时处理过多的用户请求,另一方面,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,保证web接口在各时间段内处理的用户请求数较为平均,通过上述两个方面,可以保证对web接口的流量达到平稳控制。
图4是根据一示例性实施例示出的一种流量控制装置的框图,如图4所示,该装置包括:
接收模块30,用于接收用户请求;
授权模块31,用于根据当前剩余的授权名额判断用户请求是否能够获得授权,当当前剩余的授权名额大于0时,判断用户请求能够获得授权,当当前剩余的授权名额等于0时,判断用户请求不能够获得授权,授权名额的最大值为N,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,N为正整数,M为正数;
处理模块32,用于当判断用户请求能够获得授权时,处理用户请求。
在本公开中,在收到用户请求时,根据当前剩余的授权名额判断用户请求是否能够获得授权,从而进行对该用户请求进行处理。一方面,由于授权名额的最大值为N,避免了web接口同时处理过多的用户请求,另一方面,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,保证web接口在各时间段内处理的用户请求数较为平均,通过上述两个方面,可以保证对web接口的流量达到平稳控制。
图5是根据一示例性实施例示出的一种流量控制装置的框图,如图5所示,该装置包括:
接收模块40,用于接收用户请求;
授权模块41,用于根据当前剩余的授权名额判断用户请求是否能够获得授权,当当前剩余的授权名额大于0时,判断用户请求能够获得授权,当当前剩余的授权名额等于0时,判断用户请求不能够获得授权,授权名额的最大值为N,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,N为正整数,M为正数;
处理模块42,用于当判断用户请求能够获得授权时,处理用户请求。
在本公开中,在收到用户请求时,根据当前剩余的授权名额判断用户请求是否能够获得授权,从而进行对该用户请求进行处理。一方面,由于授权名额的最大值为N,避免了web接口同时处理过多的用户请求,另一方面,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,保证web接口在各时间段内处理的用户请求数较为平均,通过上述两个方面,可以保证对web接口的流量达到平稳控制。
其中,授权模块41,用于:
查看预设计数器的值,预设计数器的值用于表示剩余的授权名额,计数器的值每M秒加一,计数器的最大值为N,每授权一个用户请求计数器的值减一;
如果计数器的值大于0,则判断用户请求能够获得授权;如果计数器的值等于0,则判断用户请求不能够获得授权。
或者,授权模块41,用于:
从预设的队列或者栈中获取授权消息,队列或栈用于保存接收到的授权消息,每个授权消息用于表示一个授权名额,队列或者栈每M秒收到一个授权消息,队列或者栈的容量为N;
如果获取到授权消息,则判断用户请求能够获得授权;如果未获取到授权消息,则判断用户请求不能够获得授权。
其中,授权消息包括接口的标识,接口的标识用于标识授权消息对特定接口的用户请求进行授权。
可选地,授权模块41,还用于:
当获取到授权消息后,根据授权消息中接口的标识,判断授权消息是否能对接收到的用户请求进行授权;
如果授权消息中接口的标识与用户请求所请求的接口对应,则判断授权消息能对用户请求进行授权;如果授权消息中接口的标识与用户请求所请求的接口不对应,则判断授权消息不能对用户请求进行授权。
可选地,授权模块41,还用于:
当收到设定接口的用户请求时,将具有设定接口的标识的授权消息放到队列的队首,以使设定接口的用户请求获得授权。
进一步地,装置还包括:
判断模块43,用于当接收用户请求时,根据用户请求中的用户标识,判断发送用户请求的用户是否为白名单用户,用户请求包括用户标识;
处理模块42,还用于当发送用户请求的用户为白名单用户时,处理用户请求。
可选地,判断模块43,还用于:
当发送用户请求的用户不是白名单用户时,判断用户请求所请求的接口是否为限制接口;当用户请求的接口是限制接口时,判断用户请求是否能够获得授权;
处理模块42,还用于当用户请求所请求的接口不是限制接口时,处理用户请求。
在本公开实施例中,处理模块42,还用于当判断用户请求不能够获得授权时,丢弃用户请求。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种流量控制装置1900的框图。例如,装置1900可以被提供为一服务器。参照图6,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述流量控制方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1932,上述指令可由装置1900的处理器1220执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置的处理器执行时,使得装置够执行一种流量控制方法,所述方法包括:
接收用户请求;
根据当前剩余的授权名额判断用户请求是否能够获得授权,当当前剩余的授权名额大于0时,判断用户请求能够获得授权,当当前剩余的授权名额等于0时,判断用户请求不能够获得授权,授权名额的最大值为N,每授权一个用户请求时,授权名额减一,授权名额每M秒加一,N为正整数,M为正数;
当判断用户请求能够获得授权时,处理用户请求。
根据本公开的一种实现方式,根据当前剩余的授权名额判断用户请求是否能够获得授权,包括:
查看预设计数器的值,预设计数器的值用于表示剩余的授权名额,计数器的值每M秒加一,计数器的最大值为N,每授权一个用户请求计数器的值减一;
如果计数器的值大于0,则判断用户请求能够获得授权;如果计数器的值等于0,则判断用户请求不能够获得授权。
根据本公开的另一种实现方式,根据当前剩余的授权名额判断用户请求是否能够获得授权,包括:
从预设的队列或者栈中获取授权消息,队列或栈用于保存接收到的授权消息,每个授权消息用于表示一个授权名额,队列或者栈每M秒收到一个授权消息,队列或者栈的容量为N;
如果获取到授权消息,则判断用户请求能够获得授权;如果未获取到授权消息,则判断用户请求不能够获得授权。
根据本公开的另一种实现方式,授权消息包括接口的标识,接口的标识用于标识授权消息对特定接口的用户请求进行授权。
根据本公开的另一种实现方式,根据当前剩余的授权名额判断用户请求是否能够获得授权,还包括:
当获取到授权消息后,根据授权消息中接口的标识,判断授权消息是否能对接收到的用户请求进行授权;
如果授权消息中接口的标识与用户请求所请求的接口对应,则判断授权消息能对用户请求进行授权;如果授权消息中接口的标识与用户请求所请求的接口不对应,则判断授权消息不能对用户请求进行授权。
根据本公开的另一种实现方式,方法还包括:
当收到设定接口的用户请求时,将具有设定接口的标识的授权消息放到队列的队首,以使设定接口的用户请求获得授权。
根据本公开的另一种实现方式,方法还包括:
当接收用户请求时,根据用户请求中的用户标识,判断发送用户请求的用户是否为白名单用户,用户请求包括用户标识;
当发送用户请求的用户为白名单用户时,处理用户请求。
根据本公开的另一种实现方式,方法还包括:
当发送用户请求的用户不是白名单用户时,判断用户请求所请求的接口是否为限制接口;
当用户请求所请求的接口不是限制接口时,处理用户请求;
当用户请求的接口是限制接口时,判断用户请求是否能够获得授权。
根据本公开的另一种实现方式,方法还包括:
当判断用户请求不能够获得授权时,丢弃用户请求。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (17)
1.一种流量控制方法,其特征在于,所述方法包括:
接收用户请求;
根据当前剩余的授权名额判断所述用户请求是否能够获得授权,当所述当前剩余的授权名额大于0时,判断所述用户请求能够获得授权,当所述当前剩余的授权名额等于0时,判断所述用户请求不能够获得授权,所述授权名额的最大值为N,每授权一个用户请求时,所述授权名额减一,所述授权名额每M秒加一,N为正整数,M为正数;
当判断所述用户请求能够获得授权时,处理所述用户请求;
其中,所述根据当前剩余的授权名额判断所述用户请求是否能够获得授权,包括:
从预设的队列或者栈中获取授权消息,所述队列或栈用于保存接收到的授权消息,每个所述授权消息用于表示一个授权名额,所述队列或者栈每M秒收到一个所述授权消息,所述队列或者栈的容量为N;
如果获取到所述授权消息,则判断所述用户请求能够获得授权;如果未获取到所述授权消息,则判断所述用户请求不能够获得授权。
2.根据权利要求1所述的方法,其特征在于,所述根据当前剩余的授权名额判断所述用户请求是否能够获得授权,包括:
查看预设计数器的值,所述预设计数器的值用于表示剩余的授权名额,所述计数器的值每M秒加一,所述计数器的最大值为N,每授权一个用户请求所述计数器的值减一;
如果所述计数器的值大于0,则判断所述用户请求能够获得授权;如果所述计数器的值等于0,则判断所述用户请求不能够获得授权。
3.根据权利要求1所述的方法,其特征在于,所述授权消息包括接口的标识,所述接口的标识用于标识所述授权消息对特定接口的用户请求进行授权。
4.根据权利要求3所述的方法,其特征在于,所述根据当前剩余的授权名额判断所述用户请求是否能够获得授权,还包括:
当获取到所述授权消息后,根据所述授权消息中接口的标识,判断所述授权消息是否能对接收到的所述用户请求进行授权;
如果所述授权消息中接口的标识与所述用户请求所请求的接口对应,则判断所述授权消息能对所述用户请求进行授权;如果所述授权消息中接口的标识与所述用户请求所请求的接口不对应,则判断所述授权消息不能对所述用户请求进行授权。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当收到设定接口的用户请求时,将具有所述设定接口的标识的授权消息放到队列的队首,以使所述设定接口的用户请求获得授权。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
当接收所述用户请求时,根据所述用户请求中的用户标识,判断发送所述用户请求的用户是否为白名单用户,所述用户请求包括用户标识;
当发送所述用户请求的用户为白名单用户时,处理所述用户请求。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当发送所述用户请求的用户不是白名单用户时,判断所述用户请求所请求的接口是否为限制接口;
当所述用户请求所请求的接口不是限制接口时,处理所述用户请求;
当所述用户请求的接口是限制接口时,判断所述用户请求是否能够获得授权。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
当判断所述用户请求不能够获得授权时,丢弃所述用户请求。
9.一种流量控制装置,其特征在于,所述装置包括:
接收模块,用于接收用户请求;
授权模块,用于根据当前剩余的授权名额判断所述用户请求是否能够获得授权,当所述当前剩余的授权名额大于0时,判断所述用户请求能够获得授权,当所述当前剩余的授权名额等于0时,判断所述用户请求不能够获得授权,所述授权名额的最大值为N,每授权一个用户请求时,所述授权名额减一,所述授权名额每M秒加一,N为正整数,M为正数;
处理模块,用于当判断所述用户请求能够获得授权时,处理所述用户请求;
其中,所述授权模块,用于:
从预设的队列或者栈中获取授权消息,所述队列或栈用于保存接收到的授权消息,每个所述授权消息用于表示一个授权名额,所述队列或者栈每M秒收到一个所述授权消息,所述队列或者栈的容量为N;
如果获取到所述授权消息,则判断所述用户请求能够获得授权;如果未获取到所述授权消息,则判断所述用户请求不能够获得授权。
10.根据权利要求9所述的装置,其特征在于,所述授权模块,用于:
查看预设计数器的值,所述预设计数器的值用于表示剩余的授权名额,所述计数器的值每M秒加一,所述计数器的最大值为N,每授权一个用户请求所述计数器的值减一;
如果所述计数器的值大于0,则判断所述用户请求能够获得授权;如果所述计数器的值等于0,则判断所述用户请求不能够获得授权。
11.根据权利要求9所述的装置,其特征在于,所述授权消息包括接口的标识,所述接口的标识用于标识所述授权消息对特定接口的用户请求进行授权。
12.根据权利要求11所述的装置,其特征在于,所述授权模块,还用于:
当获取到所述授权消息后,根据所述授权消息中接口的标识,判断所述授权消息是否能对接收到的所述用户请求进行授权;
如果所述授权消息中接口的标识与所述用户请求所请求的接口对应,则判断所述授权消息能对所述用户请求进行授权;如果所述授权消息中接口的标识与所述用户请求所请求的接口不对应,则判断所述授权消息不能对所述用户请求进行授权。
13.根据权利要求12所述的装置,其特征在于,所述授权模块,还用于:
当收到设定接口的用户请求时,将具有所述设定接口的标识的授权消息放到队列的队首,以使所述设定接口的用户请求获得授权。
14.根据权利要求9至13任一项所述的装置,其特征在于,所述装置还包括:
判断模块,用于当接收所述用户请求时,根据所述用户请求中的用户标识,判断发送所述用户请求的用户是否为白名单用户,所述用户请求包括用户标识;
所述处理模块,还用于当发送所述用户请求的用户为白名单用户时,处理所述用户请求。
15.根据权利要求14所述的装置,其特征在于,所述判断模块,还用于:
当发送所述用户请求的用户不是白名单用户时,判断所述用户请求所请求的接口是否为限制接口;当所述用户请求的接口是限制接口时,判断所述用户请求是否能够获得授权;
所述处理模块,还用于当所述用户请求所请求的接口不是限制接口时,处理所述用户请求。
16.根据权利要求9至13任一项所述的装置,其特征在于,所述处理模块,还用于当判断所述用户请求不能够获得授权时,丢弃所述用户请求。
17.一种流量控制装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收用户请求;
根据当前剩余的授权名额判断所述用户请求是否能够获得授权,当所述当前剩余的授权名额大于0时,判断所述用户请求能够获得授权,当所述当前剩余的授权名额等于0时,判断所述用户请求不能够获得授权,所述授权名额的最大值为N,每授权一个用户请求时,所述授权名额减一,所述授权名额每M秒加一,N为正整数,M为正数;
当判断所述用户请求能够获得授权时,处理所述用户请求;
其中,所述根据当前剩余的授权名额判断所述用户请求是否能够获得授权,包括:
从预设的队列或者栈中获取授权消息,所述队列或栈用于保存接收到的授权消息,每个所述授权消息用于表示一个授权名额,所述队列或者栈每M秒收到一个所述授权消息,所述队列或者栈的容量为N;
如果获取到所述授权消息,则判断所述用户请求能够获得授权;如果未获取到所述授权消息,则判断所述用户请求不能够获得授权。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510990110.1A CN105635124B (zh) | 2015-12-24 | 2015-12-24 | 流量控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510990110.1A CN105635124B (zh) | 2015-12-24 | 2015-12-24 | 流量控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105635124A CN105635124A (zh) | 2016-06-01 |
CN105635124B true CN105635124B (zh) | 2019-05-14 |
Family
ID=56049615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510990110.1A Active CN105635124B (zh) | 2015-12-24 | 2015-12-24 | 流量控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105635124B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270744B (zh) * | 2016-12-30 | 2021-05-07 | 北京国双科技有限公司 | 媒体数据访问方法及装置 |
CN108270810B (zh) * | 2016-12-30 | 2021-08-13 | 北京国双科技有限公司 | 媒体数据访问方法及装置 |
CN109445950A (zh) * | 2018-09-30 | 2019-03-08 | 青岛海尔科技有限公司 | Ocf资源的互斥访问方法及系统、服务端、介质、设备 |
CN109922043B (zh) * | 2019-01-22 | 2020-03-27 | 口碑(上海)信息技术有限公司 | 流量使用权限的控制、获取方法及装置、以及电子装置 |
CN111262793A (zh) * | 2020-01-20 | 2020-06-09 | 福建奇点时空数字科技有限公司 | 一种基于双重流量控制机制的系统流量整体控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118076A (zh) * | 2013-01-11 | 2013-05-22 | 烽火通信科技股份有限公司 | 升级服务器集群系统及其负载均衡方法 |
CN103701709A (zh) * | 2013-12-13 | 2014-04-02 | 北京京东尚科信息技术有限公司 | 一种流量控制方法及系统 |
CN104639650A (zh) * | 2015-02-27 | 2015-05-20 | 杭州华三通信技术有限公司 | 一种细粒度分布式接口访问控制方法及装置 |
-
2015
- 2015-12-24 CN CN201510990110.1A patent/CN105635124B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118076A (zh) * | 2013-01-11 | 2013-05-22 | 烽火通信科技股份有限公司 | 升级服务器集群系统及其负载均衡方法 |
CN103701709A (zh) * | 2013-12-13 | 2014-04-02 | 北京京东尚科信息技术有限公司 | 一种流量控制方法及系统 |
CN104639650A (zh) * | 2015-02-27 | 2015-05-20 | 杭州华三通信技术有限公司 | 一种细粒度分布式接口访问控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105635124A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105635124B (zh) | 流量控制方法和装置 | |
CN105100708B (zh) | 请求处理方法及装置 | |
CN104184832B (zh) | 网络应用中的数据提交方法及装置 | |
CN103916244B (zh) | 验证方法及装置 | |
US20130179941A1 (en) | Identifying guests in web meetings | |
JP5811094B2 (ja) | 属性情報処理装置、属性情報処理方法及び属性情報評価システム | |
CN106603262A (zh) | 客户服务方式的分配方法及系统 | |
CN105930731B (zh) | 一种安全应用ta交互的方法及装置 | |
CN103984887B (zh) | 控制用户权限的方法及装置 | |
CN106411517B (zh) | 一种密码重置方法及装置 | |
CN105391803A (zh) | 消息推送方法及装置 | |
CN111355723B (zh) | 单点登录方法、装置、设备及可读存储介质 | |
CN110276184A (zh) | 一种云计算资源授权方法及装置 | |
CN110351311A (zh) | 负载均衡方法及计算机存储介质 | |
CN102750486A (zh) | 一种登录控件更新登录信息的方法和装置 | |
KR20180091705A (ko) | 패킷화된 오디오 신호의 인증 | |
CN103634935B (zh) | 基于wps或qss的网络接入方法和装置 | |
JP2014534515A (ja) | ユーザーのアクセス許可の方法、システム、クライアントおよびサーバ | |
TW201317933A (zh) | 活動出席通知系統及方法 | |
US9609068B2 (en) | Session management system, session management apparatus, and non-transitory computer readable medium | |
CN109788029A (zh) | 微服务的灰度调用方法、装置、终端及可读存储介质 | |
CN104519069A (zh) | 一种拦截资源请求的方法和装置 | |
JP5383923B1 (ja) | 情報処理装置、情報処理システム、情報処理方法およびプログラム | |
JP2012083917A5 (ja) | 情報処理システム、情報処理装置、サーバ装置、情報処理方法、及び、コンピュータプログラム | |
CN110175030A (zh) | 一种api服务网关处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |