CN110351357B - 服务器限流方法、装置、计算机设备以及存储介质 - Google Patents
服务器限流方法、装置、计算机设备以及存储介质 Download PDFInfo
- Publication number
- CN110351357B CN110351357B CN201910609887.7A CN201910609887A CN110351357B CN 110351357 B CN110351357 B CN 110351357B CN 201910609887 A CN201910609887 A CN 201910609887A CN 110351357 B CN110351357 B CN 110351357B
- Authority
- CN
- China
- Prior art keywords
- current limiting
- user
- strategy
- preset
- request
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1017—Server selection for load balancing based on a round robin mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及基架运维的过程优化领域,具体涉及一种服务器限流方法、装置、计算机设备和存储介质。方法包括:首先获取预设工作周期内接收到的用户请求数量;当数量超过预设请求量阈值时,读取预存的预设第一限流策略,并读取用户请求携带的用户信息,根据预设第一限流策略以及与限流策略对应的用户信息为用户请求添加限流标签,而后将将接收到的不带限流标签的用户请求导入预设目标服务器。本申请通过获取用户请求的流量,当用户请求流量超过预设阈值时,判断需要进行服务器限流,而后根据预设的第一限流策略基于用户请求包含的用户信息来进行服务器限流,基于用户信息以及预设限流策略可以进行更加灵活的服务器限流,显著提升服务器限流的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种服务器限流方法、装置、计算机设备以及存储介质。
背景技术
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
在服务器系统中,后端服务器每处理一个请求都会分配cpu和内存等资源,在高并发量的情况下,或者系统遭受了流量攻击的情况下,后端服务器cpu使用率和内存使用率会一直居高不下,从而有崩溃的风险。
现有的服务器限流方法一般是将限流令牌存入高速缓存中,并分配单机令牌,令牌用完再向中央令牌库申请新令牌,但这种方法下如果预分配的令牌没有用完将一直被占用,难以回收,影响限流效率。
发明内容
基于此,有必要针对上述技术问题,提供一种效率更高的服务器限流方法、装置、计算机设备以及存储介质。
一种服务器限流方法,所述方法包括:
统计预设工作周期内接收到的用户请求数量;
当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
提取用户请求携带的用户信息,根据所述预设第一限流策略以及所述用户信息对所述用户请求添加限流标签;
将接收到的不带限流标签的用户请求导入预设目标服务器。
在其中一个实施例中,所述将过滤接收的用户请求均衡导入至目标服务器之前,还包括:
获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当所述未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;
根据所述预设第二限流策略以及所述用户信息为所述用户请求添加所述限流标签,所述第二限流策略与所述第一限流策略对应不同用户信息。
在其中一个实施例中,所述根据所述预设第一限流策略以及所述第一限流策略对应的用户信息为所述用户请求添加第一限流标签具体包括:
当所述第一限流策略为IP段限流时,为所述用户IP在限流IP段内的用户请求添加限流标签;
当所述第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;
当所述第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签。
在其中一个实施例中,所述当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略,根据所述预设第一限流策略对所述用户请求进行过滤之前,还包括:
获取所述目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据所述负载阈值以及所述服务器数量确定所述预设请求量阈值。
在其中一个实施例中,所述当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略,根据所述预设第一限流策略对所述用户请求进行过滤之前,还包括:
读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当所述策略更新文件的版本号高于所述策略配置文件的版本号时,对比所述策略更新文件与所述策略配置文件获取策略差分包,根据所述策略差分包更新策略配置文件。
在其中一个实施例中,所述将接收到的不带限流标签的用户请求导入预设目标服务器具体包括:
获取不带限流标签的用户请求;
通过加权轮询将所述不带限流标签的用户请求均衡导入至目标服务器。
一种服务器限流装置,所述装置包括:
请求数量解析模块,用于获取预设工作周期内接收到的用户请求数量;
策略获取模块,用于当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
服务器限流模块,用于提取用户请求携带的用户信息,根据所述预设第一限流策略以及所述用户信息对所述用户请求添加限流标签;
请求转发模块,用于将接收到的不带限流标签的用户请求导入预设目标服务器。
在其中一个实施例中,还包括第二限流模块,用于:
获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当所述未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;
根据所述预设第二限流策略以及所述用户信息为所述用户请求添加所述限流标签,所述第二限流策略与所述第一限流策略对应不同用户信息。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
统计预设工作周期内接收到的用户请求数量;
当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
提取用户请求携带的用户信息,根据所述预设第一限流策略以及所述用户信息对所述用户请求添加限流标签;
将接收到的不带限流标签的用户请求导入预设目标服务器。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
统计预设工作周期内接收到的用户请求数量;
当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
提取用户请求携带的用户信息,根据所述预设第一限流策略以及所述用户信息对所述用户请求添加限流标签;
将接收到的不带限流标签的用户请求导入预设目标服务器。
上述服务器限流方法、装置、计算机设备以及存储介质,采用通过获取预设工作周期内的用户请求数量,当用户请求数量超过预设请求量阈值时,判断需要进行服务器限流,而后根据预设的第一限流策略基于用户请求包含的用户信息来为对应的用户请求添加限流标签,基于用户请求是否包含限流标签进行服务器限流,基于用户信息以及预设限流策略可以进行更加灵活的服务器限流,显著提升服务器限流的效率。
附图说明
图1为一个实施例中服务器限流方法的应用环境图;
图2为一个实施例中服务器限流方法的流程示意图;
图3为另一个实施例中服务器限流方法的流程示意图;
图4为又一个实施例中服务器限流方法的流程示意图;
图5为一个实施例中服务器限流装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据录入方法,可以应用于如图1所示的应用环境中,其中,用户所在的终端102通过网络与预处理服务器104进行通信,预处理服务器104可以通过网络与目标服务器106进行通信,将接收到的用户请求均衡输出到服务器106上,首先,预处理服务器104通过网络获取终端102提交的用户请求,预处理服务器104可以获取预设工作周期内接收到的用户请求的数量;并判断数量是否超过了预设请求量阈值,当超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略,并提取用户请求携带的用户信息,根据预设第一限流策略以及用户信息为用户请求添加限流标签,而后将接收到的不带限流标签的用户请求导入预设目标服务器,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑。
如图2所示,在其中一个实施例中,本申请的服务器限流方法,通过预处理服务器实现,具体包括以下步骤:
S200,统计预设工作周期内接收到的用户请求数量。
用户请求是指用户通过终端向目标服务器发起的请求,用于处理用户请求的服务器为目标服务器,由于目标服务器对所有请求都进行了并发限制,以确保服务器的处理效果,即对同时处理用户请求的数量有限制,所以可以通过预处理服务器对用户请求进行预处理,确保目标服务器的稳定。在其中一个实施例中,用户请求包括登录请求、数据获取请求以及数据转发请求等。预设工作周期为判断用户请求量的一个参照值,预设工作周期具体可以是10秒钟,1分钟或者3分钟之类的,预设工作周期可以根据目标服务器处理用户请求的平均用时进行设定。在其中一个实施例中,预处理服务器为nginx服务器,可以通过调用相应的控制指令查询预设工作周期内的用户请求数量。在接收到用户请求后,可以监控用户请求的数量。
S400,当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略。
预设请求量阈值用于判断是否需要进行限流,预设请求量阈值可以根据目标服务器端对请求的并发限制即最多处理请求的数量进行设置。当预设时间内用户请求量超过预设请求量阈值时,判断需要进行限流,当预设时间内用户请求量未超过预设阈值时,则判断暂不需要进行限流。预设第一限流策略可以通过预先编写的脚本文件来实现,用于根据用户请求对应的用户信息为接收到的用户请求添加对应的限流标签,而后在将用户请求转发到目标服务器时,可以通过当前的用户请求对应限流标签来判断是否将当前的用户请求转发至目标服务器,并将不符合要求的请求直接返回失败给用户。
在获取预设工作周期内用户请求的数量后,基于用户请求的数量判断是否需要执行限流,当用户请求的数量超过预设阈值时,判断需要进行服务器限流。即读取服务器内预存的第一限流策略,并执行该限流策略,根据用户请求的属性判断各用户请求是否符合转发规则,将不符合转发规则的请求返回失败至用户所在的终端。在其中一个实施例中,预处理服务器具体可以为nginx服务器,服务器包含有openresty中间件,可以通过openresty中间件来加载预先编写的脚本文件,实现对目标服务器的限流。
S600,提取用户请求携带的用户信息,根据预设第一限流策略以及用户信息对用户请求添加限流标签。
限流标签是指系统用于判断是否将该用户请求转发到目标服务器的标签,包含用户标签的请求将不再被转发到目标服务器,当用户请求量超过预设阈值时,判断服务器可能过载,此时可以通过预处理服务器执行预设第一限流策略来对服务器进行限流,预处理服务器可以基于第一限流策略与解析获得的用户请求里的用户信息来确定是否对该用户请求进行限流。通过解析用户信息来判断是否需要对用户请求进行限流,进而为不同的用户请求添加限流标签,通过用户信息可以识别用户请求中相对重要的用户请求,提高服务器系统请求处理的效率。
S800,将接收到的不带限流标签的用户请求导入预设目标服务器。
当预处理服务器依据预存的限流策略对相应的用户请求添加限流标签之后,会将添加了标签的用户请求直接返回失败给到用户终端,而将不带限流标签的用户请求导入至目标服务器。通过预处理服务器对用户请求进行预处理,即使在某段时间内用户请求急剧增多,或者系统遭受了流量攻击,也不会有超过阈值的请求被转发到后端服务器,而是直接由预处理服务器处理了,这样就大大降低了后端服务器崩溃的风险。在其中一个实施例中,预处理服务器为nginx服务器,服务器包括nginx中间件。
上述服务器限流方法,首先获取预设工作周期内接收到的用户请求数量;当预设工作周期内用户请求的数量超过预设请求量阈值时,读取预存的预设第一限流策略,并读取用户请求携带的用户信息,根据预设第一限流策略以及与限流策略对应的用户信息为用户请求添加限流标签,而后根据限流标签将接收到的用户请求选择性导入预设目标服务器。本申请采用通过获取预设工作周期内的用户请求,当用户请求数量超过预设请求量阈值时,判断需要进行服务器限流,而后根据预设的第一限流策略基于用户请求包含的用户信息来进行服务器限流,基于用户信息以及预设限流策略可以进行更加灵活的服务器限流,显著提升服务器限流的效率。
如图3所示,在其中一个实施例中,S800之前还包括:
S720,获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略。
S740,根据预设第二限流策略以及用户信息为用户请求添加限流标签,第二限流策略与第一限流策略对应不同用户信息。
在根据第一限流策略对所有的用户请求添加完限流标签后,还可以判断预设工作周期内未添加限流标签的用户请求量是否还是超过了预设请求量阈值,当请求量超过了预设请求量阈值时,判断服务器还可能过载,此时还需要进行限流,此时可以获取预设第二限流策略,同时根据第一限流策略与第二限流策略对用户请求进行限流,如在第一限流策略中根据用户发起请求的IP对用户请求限流之后,还可以根据用户的身份来对所有的用户请求添加第二限流策略,同理如果添加完第二限流策略之后,请求量若仍然超过了预设请求量阈值时,还可以根据用户发起请求的终端来添加第三限流策略,当然,过滤策略的优先级可以根据实际处理的要求进行先后设置。通过多重过滤可以有效提高目标服务器的安全性,避免服务器因请求过多而出现资源浪费的问题。
在其中一个实施例中,步骤S600包括:
当第一限流策略为IP段限流时,为所述用户IP在限流IP段内的用户请求添加限流标签;
当第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;
当第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签。
服务器可以通过解析用户请求里的用户信息来确定是否对该用户请求进行限流,用户信息具体可以包括用户的IP地址,用户的身份信息以及用户所用的终端等,具体的限流策略可以根据目标服务器的实际情况来对限流策略进行选择,如判断用户的IP地址是否处于限流IP段,当用户的地址处于限流IP段时,对用户进行限流,或者判断用户的用户群是否处于限流客户群。可以根据用户请求的特点灵活选择限流策略,提高限流处理的效率。
如图4所示,在其中一个实施例中,S600之前还包括:
S500,获取目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据负载阈值以及服务器数量确定预设请求量阈值。
获取目标服务器的负载阈值以及服务器数量,根据服务器系统内目标服务器的服务器数量以及负载阈值确定预处理服务器的预设请求量阈值。具体地,预处理服务器可以导入的目标服务器的请求量可以根据目标服务器的负载阈值来进行选取,同时由于一个预处理服务器可以将请求均衡导入多个目标服务器,所以还需要参考目标服务器的数量来对每一个预处理服务器的请求量阈值进行设置。比如在其中一个实施例中,一台预处理服务器可以连接10台目标服务器,而目标服务器的负载阈值时每秒处理10个请求,则预处理服务器的请求量可以设置为100,单位时间可以设置为1秒钟。通过目标服务器的具体状况来计算请求量阈值,更加贴合实际,能在尽量保持服务器处理效率的前提下,尽可能保证服务器的稳定工作,提高服务器的工作效率。
在其中一个实施例中,步骤S600之前,还包括读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当策略更新文件的版本号高于策略配置文件的版本号时,对比策略更新文件与策略配置文件获取策略差分包,根据策略差分包更新策略配置文件。获取策略更新文件,根据策略更新文件更新第一限流策略。
预处理服务器可以动态获取策略更新文件的版本号,当版本号高于现有策略配置文件的版本号时,通过对比策略更新文件与策略配置文件获取策略差分包,通过策略差分包来对原策略配置文件进行升级。当需要设置新的限流策略时,可以导入新的限流策略,可以在不重启服务器更新限流策略,保证服务器的请求不会中断。通过更新限流策略,可以确保限流策略的有效性,提高限流处理的效率。
在其中一个实施例中,S800具体包括:
获取不带限流标签的用户请求;
通过加权轮询将不带限流标签的用户请求均衡导入至目标服务器。
在为所有的用户请求添加限流标签之后,可以对不带限流标签的用户请求进行转发操作,可以通过nginx中间件来对所有不带标签的用户请求执行加权轮询操作,将这些请求均衡导入到目标服务器中,实现负载均衡,在另一个实施例中,可以通过ip hash等内置策略或者是fair策略、通用hash或者一致性hash等拓展策略来替换加权轮询的策略来实现负载均衡。将接收到的用户请求均衡转发至多个目标服务器上。
在其中一个实施例中,本申请的服务器限流方法具体包括以下步骤:统计预设工作周期内接收到的用户请求数量;获取目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据负载阈值以及服务器数量确定预设请求量阈值。读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当策略更新文件的版本号高于策略配置文件的版本号时,对比策略更新文件与策略配置文件获取策略差分包,根据策略差分包更新策略配置文件。当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;提取用户请求携带的用户信息,当第一限流策略为IP段限流时,为用户IP在限流IP段内的用户请求添加限流标签;当第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;当第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签;获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;根据预设第二限流策略以及用户信息为用户请求添加限流标签,第二限流策略与第一限流策略对应不同用户信息。获取不带限流标签的用户请求;通过加权轮询将不带限流标签的用户请求均衡导入至目标服务器。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
一种服务器限流装置,装置包括:
请求数量解析模块200,用于获取预设工作周期内接收到的用户请求数量;
策略获取模块400,用于当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
服务器限流模块600,用于提取用户请求携带的用户信息,根据预设第一限流策略以及用户信息对用户请求添加限流标签;
请求转发模块800,用于将接收到的不带限流标签的用户请求导入预设目标服务器。
在其中一个实施例中,还包括第二限流模块,用于:
获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;
根据预设第二限流策略以及用户信息为用户请求添加限流标签,第二限流策略与第一限流策略对应不同用户信息。
在其中一个实施例中,服务器限流模块600具体用于:
当第一限流策略为IP段限流时,为用户IP在限流IP段内的用户请求添加限流标签;
当第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;
当第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签。
在其中一个实施例中,还包括阈值计算模块,用于获取目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据负载阈值以及服务器数量确定预设请求量阈值。
在其中一个实施例中,还包括策略更新模块,用于读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当策略更新文件的版本号高于策略配置文件的版本号时,对比策略更新文件与策略配置文件获取策略差分包,根据策略差分包更新策略配置文件。
在其中一个实施例中,请求转发模块800具体用于获取不带限流标签的用户请求;通过加权轮询将不带限流标签的用户请求均衡导入至目标服务器。
关于服务器限流装置的具体限定可以参见上文中对于服务器限流方法的限定,在此不再赘述。上述服务器限流装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务器限流方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
统计预设工作周期内接收到的用户请求数量;
当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
提取用户请求携带的用户信息,根据预设第一限流策略以及用户信息对用户请求添加限流标签;
将接收到的不带限流标签的用户请求导入预设目标服务器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;根据预设第二限流策略以及用户信息为用户请求添加限流标签,第二限流策略与第一限流策略对应不同用户信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当第一限流策略为IP段限流时,为用户IP在限流IP段内的用户请求添加限流标签;当第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;当第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据负载阈值以及服务器数量确定预设请求量阈值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当策略更新文件的版本号高于策略配置文件的版本号时,对比策略更新文件与策略配置文件获取策略差分包,根据策略差分包更新策略配置文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取不带限流标签的用户请求;通过加权轮询将不带限流标签的用户请求均衡导入至目标服务器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
统计预设工作周期内接收到的用户请求数量;
当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
提取用户请求携带的用户信息,根据预设第一限流策略以及用户信息对用户请求添加限流标签;
将接收到的不带限流标签的用户请求导入预设目标服务器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;根据预设第二限流策略以及用户信息为用户请求添加限流标签,第二限流策略与第一限流策略对应不同用户信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当第一限流策略为IP段限流时,为用户IP在限流IP段内的用户请求添加限流标签;当第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;当第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据负载阈值以及服务器数量确定预设请求量阈值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当策略更新文件的版本号高于策略配置文件的版本号时,对比策略更新文件与策略配置文件获取策略差分包,根据策略差分包更新策略配置文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取不带限流标签的用户请求;通过加权轮询将不带限流标签的用户请求均衡导入至目标服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种服务器限流方法,所述方法包括:
统计预设工作周期内接收到的用户请求数量,所述预设工作周期根据用户请求的处理平均用时进行设定;
读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当所述策略更新文件的版本号高于所述策略配置文件的版本号时,对比所述策略更新文件与所述策略配置文件获取策略差分包,根据所述策略差分包更新策略配置文件,所述预设第一限流策略通过预先编写的脚本文件实现;
获取目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据所述负载阈值以及所述服务器数量确定预设请求量阈值;
当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
提取用户请求携带的用户信息,根据所述预设第一限流策略以及所述用户信息对所述用户请求添加限流标签;
获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当所述未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;
根据所述预设第二限流策略以及所述用户信息为所述用户请求添加所述限流标签,所述第二限流策略与所述第一限流策略对应不同用户信息;
将接收到的不带限流标签的用户请求导入预设目标服务器。
2.根据权利要求1所述的方法,其特征在于,所述用户请求包括登录请求、数据获取请求以及数据转发请求。
3.根据权利要求1所述的方法,其特征在于,所述根据所述预设第一限流策略以及所述第一限流策略对应的用户信息为所述用户请求添加限流标签具体包括:
当所述第一限流策略为IP段限流时,为所述用户IP在限流IP段内的用户请求添加限流标签;
当所述第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;
当所述第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签。
4.根据权利要求1所述的方法,其特征在于,所述将接收到的不带限流标签的用户请求导入预设目标服务器具体包括:
获取不带限流标签的用户请求;
通过加权轮询将所述不带限流标签的用户请求均衡导入至目标服务器。
5.一种服务器限流装置,其特征在于,所述装置包括:
请求数量解析模块,用于获取预设工作周期内接收到的用户请求数量,所述预设工作周期根据用户请求的处理平均用时进行设定;
策略更新模块,用于读取预设第一限流策略对应策略配置文件的版本号,获取当前策略更新文件的版本号,当所述策略更新文件的版本号高于所述策略配置文件的版本号时,对比所述策略更新文件与所述策略配置文件获取策略差分包,根据所述策略差分包更新策略配置文件,所述预设第一限流策略通过预先编写的脚本文件实现;
阈值计算模块,用于获取目标服务器的负载阈值以及服务器系统内目标服务器的服务器数量,根据所述负载阈值以及所述服务器数量确定预设请求量阈值;
策略获取模块,用于当预设工作周期内用户请求的数量超过预设请求量阈值时,读取用于添加限流标签的预设第一限流策略;
服务器限流模块,用于提取用户请求携带的用户信息,根据所述预设第一限流策略以及所述用户信息对所述用户请求添加限流标签;
第二限流模块,用于获取预设工作周期所有用户请求数量中未添加限流标签的用户请求数量,当所述未添加限流标签的用户请求数量超过预设请求量阈值时,获取第二限流策略;根据所述预设第二限流策略以及所述用户信息为所述用户请求添加所述限流标签,所述第二限流策略与所述第一限流策略对应不同用户信息;
请求转发模块,用于将接收到的不带限流标签的用户请求导入预设目标服务器。
6.根据权利要求5所述的装置,其特征在于,所述用户请求包括登录请求、数据获取请求以及数据转发请求。
7.根据权利要求5所述的装置,其特征在于,所述服务器限流模块具体用于:当所述第一限流策略为IP段限流时,为所述用户IP在限流IP段内的用户请求添加限流标签;当所述第一限流策略为用户群限流时,为限流用户群内用户对应的用户请求添加限流标签;当所述第一限流策略为用户终端时,为限流用户终端对应的用户请求添加限流标签。
8.根据权利要求5所述的装置,其特征在于,所述请求转发模块具体用于:获取不带限流标签的用户请求;通过加权轮询将所述不带限流标签的用户请求均衡导入至目标服务器。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910609887.7A CN110351357B (zh) | 2019-07-08 | 2019-07-08 | 服务器限流方法、装置、计算机设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910609887.7A CN110351357B (zh) | 2019-07-08 | 2019-07-08 | 服务器限流方法、装置、计算机设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110351357A CN110351357A (zh) | 2019-10-18 |
CN110351357B true CN110351357B (zh) | 2023-07-25 |
Family
ID=68178315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910609887.7A Active CN110351357B (zh) | 2019-07-08 | 2019-07-08 | 服务器限流方法、装置、计算机设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110351357B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343101B (zh) * | 2020-02-03 | 2023-04-28 | 江苏满运软件科技有限公司 | 服务器限流方法、装置、电子设备及可读存储介质 |
CN111352746B (zh) * | 2020-02-10 | 2023-07-07 | 福建天泉教育科技有限公司 | 消息限流方法、存储介质 |
CN111371841B (zh) * | 2020-02-17 | 2023-04-07 | 平安科技(深圳)有限公司 | 一种数据监控的方法及装置 |
CN111580961B (zh) * | 2020-04-28 | 2023-12-26 | 北京达佳互联信息技术有限公司 | 访问请求处理方法、装置、服务器及存储介质 |
CN112398747A (zh) * | 2020-11-03 | 2021-02-23 | 深圳壹账通智能科技有限公司 | 一种限流方法、装置、计算机设备和存储介质 |
CN112968945B (zh) * | 2021-02-01 | 2023-01-24 | 北京字跳网络技术有限公司 | 限流方法、装置、电子设备及存储介质 |
CN112769960B (zh) * | 2021-03-09 | 2024-09-27 | 厦门市公安局 | 一种基于Nginx服务器的主动流量控制方法及系统 |
CN113163008B (zh) * | 2021-04-19 | 2023-03-24 | 深圳市欧瑞博科技股份有限公司 | 网络服务系统的连接智能管理方法、装置及其相关设备 |
CN113872871B (zh) * | 2021-09-24 | 2024-07-30 | 上海哔哩哔哩科技有限公司 | 网络加速方法、系统、设备、存储介质及计算机程序产品 |
CN113905031A (zh) * | 2021-10-09 | 2022-01-07 | 上海得帆信息技术有限公司 | 一种多功能http服务请求预处理系统及方法 |
CN114584519B (zh) * | 2022-05-05 | 2022-09-16 | 飞狐信息技术(天津)有限公司 | 一种消息中间件的限流方法及消息中间件 |
CN115037799B (zh) * | 2022-06-01 | 2024-01-05 | 阿里巴巴(中国)有限公司 | 限流方法、装置、设备及介质 |
CN115225579A (zh) * | 2022-06-09 | 2022-10-21 | 深圳金融电子结算中心有限公司 | 流量限制方法、系统、应用服务器及可读存储介质 |
CN115118785B (zh) * | 2022-08-29 | 2023-01-06 | 太平金融科技服务(上海)有限公司深圳分公司 | 服务器资源保护方法、装置、设备、介质和程序产品 |
CN115987905B (zh) * | 2022-12-21 | 2024-05-14 | 杭州诚智天扬科技有限公司 | 一种多通道流控方法、系统、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075418B (zh) * | 2010-12-31 | 2014-05-07 | 北京神州绿盟信息安全科技股份有限公司 | 一种网络数据流量控制设备及方法 |
CN107135521B (zh) * | 2016-02-29 | 2020-12-25 | 华为技术有限公司 | 一种流量控制方法、装置和系统 |
US10587524B2 (en) * | 2016-03-31 | 2020-03-10 | Ayla Networks, Inc. | Multi-tagged multi-tenant rate limiting |
CN108073465A (zh) * | 2017-12-29 | 2018-05-25 | 中国平安人寿保险股份有限公司 | 动态限流方法、Nginx服务器、存储介质及装置 |
CN108418764A (zh) * | 2018-02-07 | 2018-08-17 | 深圳壹账通智能科技有限公司 | 限流方法、装置、计算机设备和存储介质 |
-
2019
- 2019-07-08 CN CN201910609887.7A patent/CN110351357B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110351357A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351357B (zh) | 服务器限流方法、装置、计算机设备以及存储介质 | |
CN109787908B (zh) | 服务器限流方法、系统、计算机设备及存储介质 | |
CN110996352B (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
CN108965381B (zh) | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 | |
CN109542428B (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN110597858A (zh) | 任务数据处理方法、装置、计算机设备和存储介质 | |
CN108834086B (zh) | 短信发送的方法、装置、计算机设备和存储介质 | |
CN111490963B (zh) | 基于quic协议栈的数据处理方法、系统、设备及存储介质 | |
CN109359809B (zh) | 工作任务分配方法、系统、计算机设备和存储介质 | |
CN110708247B (zh) | 消息路由方法、装置、计算机设备和存储介质 | |
CN110222535B (zh) | 区块链配置文件的处理装置、方法及存储介质 | |
CN112689007B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN108763396B (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
CN115239450A (zh) | 财务数据处理方法、装置、计算机设备及存储介质 | |
CN111222821A (zh) | 一种货品补充方法、装置、计算机设备和存储介质 | |
CN111949681A (zh) | 数据的聚合处理装置、方法和存储介质 | |
CN113949579B (zh) | 网站攻击防御方法、装置、计算机设备及存储介质 | |
CN113111078B (zh) | 资源数据处理方法、装置、计算机设备和存储介质 | |
CN114172892A (zh) | 文件上传方法和装置 | |
CN111522873B (zh) | 区块生成方法、装置、计算机设备和存储介质 | |
CN111382012B (zh) | MySQL云数据库的备份方法、装置、计算机设备和存储介质 | |
CN116719646A (zh) | 热点数据处理方法、装置、电子装置和存储介质 | |
CN112468558B (zh) | 基于混合云的请求转发方法、装置、终端及存储介质 | |
CN111064636B (zh) | 前置机连接的控制方法、装置、系统、计算机设备 | |
CN110969430B (zh) | 可疑用户的识别方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |