CN112804160B - 基于应用程序的限流方法、装置、设备、介质及产品 - Google Patents
基于应用程序的限流方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN112804160B CN112804160B CN202110102858.9A CN202110102858A CN112804160B CN 112804160 B CN112804160 B CN 112804160B CN 202110102858 A CN202110102858 A CN 202110102858A CN 112804160 B CN112804160 B CN 112804160B
- Authority
- CN
- China
- Prior art keywords
- target service
- request quantity
- request
- cluster
- target
- 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
Images
Classifications
-
- 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
- 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
-
- 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/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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
Abstract
本公开的实施例提供一种基于应用程序的限流方法、装置、设备、介质及产品,该方法包括:周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;根据各所述目标服务的标识信息确定对应的请求量阈值;确定每个周期对应的预设时间段内各目标服务对应的请求量;若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。能够精准地确定是否需要针对各目标服务进行限流操作,能够针对应用程序中的各目标服务提供精细化的限流服务。
Description
技术领域
本公开的实施例涉及计算机技术,尤其涉及一种基于应用基于应用程序的限流方法、装置、设备、介质及产品。
背景技术
随着移动互联网的发展,各种应用程序也获得了突飞猛进地发展。用户对应用程序的请求量也不断激增。为了保证应用程序提供服务的稳定性,避免由于负载过大导致应用程序的系统崩溃,需要对应用程序的请求量进行限流。
目前对应用程序的请求量进行限流的方式一般为确定对应用程序的请求中的恶意请求,并对该恶意请求进行屏蔽。或者通过增加应用程序对应的机房,在一个机房服务器中应用程序的请求量较大时,通过将一部分请求量切换到另外的机房服务器上,来限制请求量。
但目前对应用程序的请求量进行限流的方式只是从应用程序整体上进行限流,并不能提供精细化的限流服务。
发明内容
本公开的实施例提供一种基于应用基于应用程序的限流方法、装置、设备、介质及产品,用以解决现有技术中只是从应用程序整体上内进行限流,并不能提供精细化的限流服务的技术问题。
第一方面,本公开的实施例提供一种基于应用程序的限流方法,所述应用程序中包括多种待访问服务,所述方法包括:
周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;
根据各所述目标服务的标识信息确定对应的请求量阈值;
确定每个周期对应的预设时间段内各目标服务对应的请求量;
若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。
第二方面,本公开的实施例提供一种基于应用程序的限流装置,所述应用程序中包括多种待访问服务,所述装置包括:
监听模块,用于周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;
确定模块,用于根据各所述目标服务的标识信息确定对应的请求量阈值;
所述确定模块,还用于确定每个周期对应的预设时间段内各目标服务对应的请求量;
限流模块,用于若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。
第三方面,本公开的实施例提供一种电子设备,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如第一方面任一项所述的方法。
第四方面,本公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如第一方面中任一项所述的方法。
第五方面,本公开的实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项所述的方法的步骤。
本公开的实施例提供的基于应用基于应用程序的限流方法、装置、设备、介质及产品,通过周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;根据各所述目标服务的标识信息确定对应的请求量阈值;确定每个周期对应的预设时间段内各目标服务对应的请求量;若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。由于针对每个目标服务均预先配置了对应的请求量阈值,并且针对每个周期对应的预设时间段内各目标服务对应的请求量进行了确定,所以能够通过将每个目标服务预设时间段内对应的请求量与对应的请求量阈值进行对比的方式来确定每个目标服务的请求量是否超限,进而能够精准地确定是否需要针对各目标服务进行限流操作,能够针对应用程序中的各目标服务提供精细化的限流服务。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是可以实现本公开实施例的基于应用程序的限流方法的一种网络架构图;
图2是可以实现本公开实施例的基于应用程序的限流方法的一种应用场景图;
图3是本公开一实施例提供的基于应用程序的限流方法的流程示意图;
图4是本公开另一实施例提供的基于应用程序的限流方法的流程示意图;
图5是本公开又一实施例提供的基于应用程序的限流方法的流程示意图;
图6是本公开一实施例提供的基于应用程序的限流装置的结构示意图;
图7是用来实现本公开实施例的基于应用程序的限流方法的电子设备的第一框图;
图8是用来实现本公开实施例的基于应用程序的限流方法的电子设备的第二框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。
现有技术中对应用程序的请求量进行限流的方式有从软件着手的方式和从硬件着手的方式。在从软件着手的方式中,获取到客户端的IP地址或手机号码等信息,然后根据客户端的IP地址或手机号码等信息确定请求中的恶意请求,然后对恶意请求进行屏蔽。在从硬件着手的方式中,增加应用程序对应的机房,在一个机房服务器中应用程序的请求量较大时,通过将一部分请求量切换到另外的机房服务器上,来限制请求量。
但是现有的对应用程序的请求量进行限流的方式只是从应用程序整体上进行限流。在目前的应用程序中,很多应用程序均具有多种待访问的服务。每种待访问的服务均为应用程序的一个产品线。如在打车应用程序中,待访问的服务有拼车服务、快车服务、出租车服务及专车服务等。根据打车人群的不同,每种待访问的服务的请求量也是不同的。由于各个待访问的服务都是共用基础服务的,现有的对应用程序的请求量进行限流的方式只是从应用程序整体上进行限流,并不能准确确定出每种待访问服务是否需要限流,所以并不适用于具有多种待访问服务的应用程序,导致若其中一个或多个待访问的服务出现请求量较大时,导致基础服务出现崩溃的现象。
所以在面对现有技术中的技术问题时,发明人通过创造性的研究后发现若能够针对有多个待访问服务的应用程序进行精细化的限流服务并且能够保证在需要进行限流时及时进行限流,需要针对每个目标服务的请求量周期性地进行监控,确定每个周期对应的预设时间段内各目标服务对应的请求量。并且预先配置每个目标服务对应的请求量阈值。则在周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求时,从多个访问请求中获取至少一种目标服务的标识信息,根据各目标服务的标识信息确定对应的请求量阈值。将每个目标服务预设时间段内对应的请求量与对应的请求量阈值进行对比,若确定预设时间段内某目标服务的请求量大于对应的请求量阈值,则说明该目标服务的请求量较大,需要对该目标服务进行限流操作。由于针对每个目标服务均预先配置了对应的请求量阈值,并且针对每个周期对应的预设时间段内各目标服务对应的请求量进行了确定,所以能够通过将每个目标服务预设时间段内对应的请求量与对应的请求量阈值进行对比的方式来确定每个目标服务的请求量是否超限,进而能够精准地确定是否需要针对各目标服务进行限流操作,能够针对应用程序中的各目标服务提供精细化的限流服务。
本公开的实施例提供的基于应用程序的限流方法,可以适用于图1所示的网络系统架构示意图。如图1所示,该网络系统包括:多个终端设备,电子设备1及应用程序对应的服务器集群,在服务器集群中包括多台服务器,每台服务器提供的服务相同。各个目标服务均部署在每台服务器上。在图1中,假设多个终端设备包括图中的终端设备11、终端设备12、终端设备13。服务器集群中的服务器包括:服务器31、服务器32和服务器33。
需要说明的是,图1所示的网络系统可以适用于不同的网络制式,例如,可以适用于全球移动通讯(Global System of Mobile communication,简称GSM)、码分多址(CodeDivision Multiple Access,简称CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,简称WCDMA)、时分同步码分多址(Time Division-Synchronous CodeDivision Multiple Access,简称TD-SCDMA)、长期演进(Long Term Evolution,简称LTE)系统及5G等网络制式。
上述终端设备可以是无线终端也可以是有线终端。无线终端可以是指向用户提供语音和/或其他业务数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。再例如,无线终端还可以是个人通信业务(Personal Communication Service,简称PCS)电话、用户终端(User Terminal)、用户代理(User Agent)、用户设备(User Device or User Equipment),在此不作限定。可选的,上述终端设备还可以是智能手表、平板电脑等设备。
下面以应用程序为打车应用程序,对本公开实施例提供的基于应用程序的限流方法的应用场景进行介绍。
如图2所示,在终端设备11,终端设备12和终端设备13中均安装有打车应用程序。终端设备11和终端设备12对应的用户为专车司机,终端设备13对应的用户为快车司机。各用户通过对应的终端设备向服务器集群中的每台服务器发送应用程序中至少一种目标服务的访问请求。电子设备2对访问请求进行周期性地监听。电子设备2根据各目标服务的标识信息确定对应的请求量阈值;并确定每个周期对应的预设时间段内各目标服务对应的请求量;若确定预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。若确定预设时间段内某目标服务的请求量小于或等于对应的请求量阈值,则在每台服务器接收到访问请求后,根据预设的处理策略由其中一台服务器进行该访问请求对应的访问响应。如在图2中,终端设备11和终端设备12向电子设备2发送第一目标服务的访问请求,终端设备13发送第二目标服务的访问请求,则电子设备2对第一目标服务进行限流操作,对第二目标服务不进行限流操作,服务器集群接收到终端设备13发送的访问请求后,由服务器33进行对应的访问响应。
可以理解的是,本实施例提供的应用场景还适用于其他具有多个待访问服务的应用程序。
下面以具体地实施例对本公开的实施例的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例的实施例进行描述。
实施例一
图3是本公开一实施例提供的基于应用程序的限流方法的流程示意图,如图3所示,本公开实施例的执行主体为基于应用程序的限流装置,该基于应用程序的限流装置可以集成在电子设备中。则本实施例提供的基于应用程序的限流方法包括以下几个步骤。
步骤101,周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,访问请求中包括:目标服务的标识信息。
本实施例中,应用程序包括多种待访问服务,每个待访问服务为应用程序的一个产品线。在服务器集群中包括多台服务器,每台服务器均能提供应用程序中的多种待访问服务。
本实施例中,用户通过终端设备访问的应用程序中的服务为目标服务。在每个周期的预设时间段内,目标服务可以为待访问服务中的至少一种。
本实施例中,在用户通过终端设备使用应用程序时,通过应用程序的客户端或网页的操作界面里的组件来触发对应用程序中某个目标服务的访问请求。用户触发的组件不同,所触发的访问请求也会随之不同,所以在用户通过组件来触发访问请求时,在访问请求中包括了目标服务的标识信息。而电子设备对访问请求进行周期性地监听。在进行周期性的监听时,可根据每个周期对应的预设时间段配置定时器,在定时器启动时,进行对终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求的监听操作。在定时器到时后,结束该周期的对终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求的监听操作。并对定时器重新进行定时,启动下一周期的监听操作。
其中,目标服务的标识信息可以表示为product_id,其可以为目标服务的名称,或目标服务在应用程序中的序号等能表示唯一目标服务的信息。
步骤102,根据各目标服务的标识信息确定对应的请求量阈值。
本实施例中,可获取预设配置文件,预设配置文件中包括:各待访问服务的标识信息与请求量阈值的映射关系;获取与各目标服务的标识信息具有映射关系的请求量阈值;将具有映射关系的请求量阈值确定为目标服务对应的请求量阈值。
具体地,本实施例中,可预先针对应用程序中的每个待访问的服务均配置对应的请求量阈值。则在预设配置文件中构建每个待访问的服务的标识信息与请求量阈值的映射关系。则在监听到各访问请求后,获取各访问请求中的目标服务的标识信息,将各访问请求中的标识信息与映射关系中的每个待访问的服务的标识信息进行匹配,进而确定出访问请求中的目标服务的标识信息对应的请求量阈值。
可以理解的是,请求量阈值的取值可根据历史预设时间段内的各待访问的服务的请求量情况进行配置,或者通过其他方式来进行配置,本实施例中对此不作限定。
步骤103,确定每个周期对应的预设时间段内各目标服务对应的请求量。
本实施例中,在周期性对访问请求进行监听的过程中,若监听到了访问请求,则可根据访问请求中目标服务的标识信息来对每个目标服务在预设时间段内的请求次数进行统计,将统计后的请求次数确定为对应的请求量。
需要说明的是,步骤102和步骤103之间没有严格的执行顺序,可执行完步骤102后执行步骤103,或执行完步骤103后执行步骤102,本实施例中对此不作限定。
步骤104,若确定预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。
本实施例中,将预设时间段内各目标服务的请求量与对应的请求量阈值进行对比,若确定在预设时间段内某目标服务的请求量大于对应的请求量阈值,则说明该目标服务的请求量较大,有影响应用程序的基础服务稳定性的风险,则对该目标服务进行限流操作。在对目标服务进行限流操作时,拦截该目标服务的访问请求,或控制各服务器拒绝对该目标服务访问请求进行访问响应。
本实施例提供的基于应用程序的限流方法,通过周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,访问请求中包括:目标服务的标识信息;根据各目标服务的标识信息确定对应的请求量阈值;确定每个周期对应的预设时间段内各目标服务对应的请求量;若确定预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作,由于针对每个目标服务均预先配置了对应的请求量阈值,并且针对每个周期对应的预设时间段内各目标服务对应的请求量进行了确定,所以能够通过将每个目标服务预设时间段内对应的请求量与对应的请求量阈值进行对比的方式来确定每个目标服务的请求量是否超限,进而能够精准地确定是否需要针对各目标服务进行限流操作,能够针对应用程序中的各目标服务提供精细化的限流服务。
实施例二
图4是本公开另一实施例提供的基于应用程序的限流方法的流程示意图,如图4所示,本实施例提供的基于应用程序的限流方法,在本公开实施例一提供的基于应用程序的限流方法的基础上,对步骤102-步骤104的进一步细化,则本实施例提供的基于应用程序的限流方法包括以下步骤:
步骤201,周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,访问请求中包括:目标服务的标识信息。
其中,在访问请求中还包括:目标服务中目标访问接口的标识信息。
具体地,本实施例中,应用程序中的每个待访问的服务均有一个或多个接口,每个接口为该待访问的服务提供不同的功能。如在打车应用程序中,在出租车服务中,有输入起始地址和终止地址确定行程的接口,有确认呼叫出租车为用户匹配接单出租车的接口,有到达目的地支付的接口等。
所以本实施例中,在用户通过应用程序的客户端或网页的操作界面里的组件来触发对应用程序中某个目标服务的访问请求时,用户触发的组件不同,所触发的访问请求中包括的目标服务的标识信息和目标服务中目标访问接口的标识信息也会不同。所以在用户通过组件来触发访问请求时,在访问请求中既包括了目标服务的标识信息,还包括了目标服务中目标访问接口的标识信息。而电子设备对访问请求进行周期性地监听来获取访问请求。
其中,目标服务中目标访问接口的标识信息可以为目标访问接口的名称,如可表示为:interface_name。或还可以为目标访问接口在目标服务中的序号等能表示唯一目标访问接口的信息。
步骤202,判断在应用程序基础服务对应的缓存中是否存在目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对,若是,则执行步骤203,否则执行步骤204。
步骤203,在缓存中增加集群请求量键值对的值。
步骤204,在缓存中创建对应的集群请求量键值对,并进行初始化处理。
本实施例中,在电子设备监听到访问请求后,会解析出访问请求中的目标服务的标识信息和目标访问接口的标识信息,并以目标服务的标识信息和目标访问接口的标识信息为入参生成固定格式的集群请求量键值对,该集群请求量键值对可表示为((global_key,product_id+interface_name),value)。
可以理解的是,每个访问请求中的一种目标服务的标识信息和目标访问接口的标识信息的结合,对应的global_key也是唯一的。其中,value的具体数值为集群请求量键值对中global_key对应的数量,其表征某种目标服务的某种目标访问接口的请求量。
本实施例中,在每次生成集群请求量键值对后,均对为应用程序提供基础服务的服务设备的缓存中的集群请求量键值对进行更新。在具体进行集群请求量键值对的更新时,将访问请求对应的global_key与缓存中存在的global_key进行对比,若缓存中存在访问请求对应的global_key,则对该global_key对应的value值进行加1处理。若缓存中不存在访问请求对应的global_key,则在缓存中创建对应的集群请求量键值对,在对该集群请求量键值对进行初始化处理时,value值赋值为1。
步骤205,根据各目标服务的标识信息和目标服务中目标访问接口的标识信息确定目标访问接口对应的请求量阈值。
作为一种可选实施方式,本实施例中,步骤205包括以下步骤:
步骤2051,获取预设配置文件,预设配置文件中包括:各待访问服务的标识信息,各待访问服务中至少一个待访问访问接口的标识信息与请求量阈值的映射关系。
具体地,本实施例中,在配置文件中预先配置了各待访问服务的标识信息,各待访问服务中至少一个待访问访问接口的标识信息与请求量阈值的映射关系。如对配置文件进行分块处理,每块数据对应一个待访问服务,则在每个待访问服务的配置数据中,包括待访问服务的标识信息与对应的至少一个待访问访问接口的标识信息与请求量阈值的映射关系。
其中,每个待访问访问接口对应的请求量的阈值可根据历史预设时间段内的各待访问服务中每个待访问接口对应的请求量情况进行配置,或者通过其他方式来进行配置,本实施例中对此不作限定。
步骤2052,获取与各目标服务的标识信息和目标服务中目标访问接口的标识信息具有映射关系的请求量阈值。
步骤2053,将具有映射关系的请求量阈值确定为目标访问接口对应的请求量阈值。
本实施例中,针对每个目标服务的标识信息和目标服务中目标访问接口的标识信息,在配置文件中查找一致的待访问服务的标识信息和待访问接口的信息。将与一致的待访问服务的标识信息和待访问接口的信息具有映射关系的请求量阈值确定为目标访问接口对应的请求量阈值。
步骤206,从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;将各集群请求量键值对的值确定为对应的集群请求量。
本实施例中,可根据每个周期对应的预设时间段配置定时器,针对每个周期,在定时器启动时,进行对终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求的监听操作。在定时器到时后,从缓存中获取各目标服务中目标访问接口对应的集群请求量键值对的值,该集群请求量键值对的值value即为对应目标访问接口对应的集群请求量。
步骤207,若确定预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
本实施例中,将每个目标服务中每个目标访问接口的集群请求量,即集群请求量键值对的值与对应的集群请求量阈值进行对比,若确定预设时间段内某目标服务中某目标访问接口的集群请求量的值大于对应的集群请求量阈值,则说明该目标服务的该目标访问接口的请求量较大,会有影响应用程序的基础服务稳定性的风险,则对该目标服务进行限流操作。
在对目标服务的该目标访问接口进行限流操作时,拦截该目标服务的该目标访问接口的访问请求,或控制各服务器拒绝对该目标服务中该目标访问接口的访问请求进行访问响应。
本实施例提供的基于应用程序的限流方法,通过周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,访问请求中包括:目标服务的标识信息和目标服务中目标访问接口的标识信息,判断在应用程序基础服务对应的缓存中是否存在目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对,若是,则在缓存中增加集群请求量键值对的值,若否,则在缓存中创建对应的集群请求量键值对,并进行初始化处理,根据各目标服务的标识信息和目标服务中目标访问接口的标识信息确定目标访问接口对应的请求量阈值,从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;将各集群请求量键值对的值确定为对应的集群请求量,若确定预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作,由于针对每个待访问服务的每个待访问接口均进行了请求量阈值的配置,并且能够监听到每个周期预设时间段内每个目标服务的每个目标访问接口的请求量,所以能够以目标服务中的每个目标访问接口为对象,进行更加精细化地限流操作。并且相较于现有技术,无需对请求是否为恶意请求进行解析,也无需增加应用程序对应的机房,有效降低了限流的复杂度,节省了计算资源。并且有效降低了工作量和成本。
实施例三
图5是本公开另一实施例提供的基于应用程序的限流方法的流程示意图,如图5所示,本实施例提供的基于应用程序的限流方法,在本公开实施例二提供的基于应用程序的限流方法的基础上,对步骤205的进一步细化,并且还包括了其他步骤,则本实施例提供的基于应用程序的限流方法包括以下步骤:
步骤301,对各待访问服务中每个待访问接口对应的集群请求量阈值和单台服务器的请求量阈值进行配置,生成预设的配置文件。
本实施例中,待访问服务的标识信息可表示为product_id,待访问接口的标识信息可表示为interface_name。待访问接口对应的集群请求量阈值为在一个周期的预设时间内,该待访问接口允许被访问的最大请求量,可表示为global_limit_threshold。待访问接口对应的单台服务器的请求量阈值,为在一个周期的预设时间内,该待访问接口在单台服务器中允许被访问的最大请求量,可表示为local_limit_threshold。
其中,local_limit_threshold=global_limit_threshold/n,n为服务器集群中服务器的总数量。
本实施例中,对各待访问服务中每个待访问接口对应的集群请求量阈值和单台服务器的请求量阈值进行配置,即为在配置文件中构建各待访问服务的标识信息,各待访问服务中每个待访问访问接口的标识信息与集群请求量阈值及单台服务器的请求量阈值的映射关系。
步骤302,将预设配置文件分发到服务器集群中每台服务器指定的路径下面。
本实施例中,预先配置预设配置文件在每台服务器中的存储位置,然后根据该存储位置,将预设配置文件分发到每台服务器指定的路径下面。
步骤303,采用热加载的方式将预设配置文件加载到服务器集群中的各服务器的内存中。
本实施例中,采用热加载的方式将预设配置文件加载到服务器集群中的各服务器的内存中,能够保证预设的配置文件在进行更新时,内存中的预设配置文件为最新的配置文件。
步骤304,访问某预设服务器的内存,以从内存中获取预设配置文件。
本实施例中,由于每台服务器内存中的预设配置文件都是相同的,并且都是最新的配置文件,所以访问某一个预设服务器的内存,获取到最新的预设配置文件,以从配置文件中获取任意一个待访问服务中的待访问接口对应的集群请求量阈值及单台服务器的请求量阈值。
步骤305,启动定时器,对当前周期中终端设备发送给服务器集群的应用程序中至少一种目标服务的目标访问接口的访问请求进行监听。
步骤306,判断是否接收到终端设备发送给服务器集群的应用程序中目标服务的目标访问接口的访问请求,若是,则执行步骤307,否则继续执行步骤305。
本实施例中,启动定时器后,开始当前周期对终端设备发送给服务器集群的应用程序中至少一种目标服务的目标访问接口的访问请求的监听,在监听过程中判断是否接收到终端设备发送给服务器集群的应用程序中目标服务的目标访问接口的访问请求。
其中,在访问请求中包括:目标服务的标识信息和目标服务中目标访问接口的标识信息。
步骤307,判断在应用程序基础服务对应的缓存中是否存在目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对,若是,则执行步骤308,否则执行步骤309。
步骤308,在缓存中增加集群请求量键值对的值,并在各服务器中增加单台服务器请求量键值对的值。
本实施例中,为了能够对目标访问接口对应的单台服务器的请求量进行限流,则在各服务器中还对单台服务器请求量键值对的值进行更新。
其中,单台服务器请求量键值对可表示为(local_key,value)。
步骤309,在缓存中创建对应的集群请求量键值对,并进行初始化处理,以及在各服务器中创建对应的单台服务器请求量键值对,并进行初始化处理。
本实施例中,与缓存中对集群请求量键值对的更新方式类似,在对单台服务器请求量键值对进行更新时,将访问请求对应的local_key与缓存中存在的local_key进行对比,若缓存中存在访问请求对应的local_key,则对该local_key对应的value值进行加1处理。若缓存中不存在访问请求对应的local_key,则在缓存中创建对应的单台服务器请求量键值对,在对该当台服务器请求量键值对进行初始化处理时,value值赋值为1。
步骤310,判断各目标服务中各目标访问接口的集群请求量是否大于对应的集群请求量阈值,若是,则执行步骤311,否则执行步骤312。
步骤311,拒绝对该目标服务中该目标访问接口的访问操作。
本实施例中,若确定当前周期内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
步骤312,判断各目标服务中各目标访问接口的单台服务器请求量是否大于对应的单台服务器请求量阈值,若是,则执行步骤311,否则执行步骤313。
本实施例中,确定每个周期对应的预设时间段内各目标服务对应的请求量,包括:从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;将各集群请求量键值对的值确定为对应的集群请求量。
则在当前周期中确定各目标服务对应的请求量,包括:从缓存中获取当前周期中各目标服务中目标访问接口对应的集群请求量键值对的值;将各集群请求量键值对的值确定为对应的集群请求量。
本实施例中,若确定预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,或预设时间段内某目标服务中某目标访问接口的单台服务器请求量大于对应的单台服务器请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
需要说明的是,若执行对某目标服务中某目标访问接口的限流操作后,对该目标服务中该目标访问接口的访问请求进行解析,若存在恶意请求,则对该恶意请求进行屏蔽。若不存在恶意请求,而是由于正常访问请求的激增造成的,则可及时更新预设配置文件,具体可增加配置文件中该目标访问接口的集群请求量阈值和单服务器请求量阈值,并采用热加载的方式将预设配置文件加载到服务器集群中的各服务器的内存中。以在下一周期判断是否对该目标访问接口是否进行限流的处理时,进行更加满足用户需求的限流处理。
步骤313,判断计时器是否到时,若是,则执行步骤314,否则返回执行步骤306。
步骤314,对集群请求量和单台服务器请求量分别进行清零处理。
需要说明的是,执行步骤314后,继续返回执行步骤305。
本实施例中,在定时器到时,则说明当前周期对访问请求的监听和是否对至少一个目标访问接口是否进行限流以完成,需要重新进行下一周期的访问请求的监听和是否对至少一个目标访问接口是否进行限流的处理,在进行下一周期的访问请求的监听和是否对至少一个目标访问接口是否进行限流的处理前,需要对集群请求量和单台服务器请求量分别进行清零处理,即将集群请求量键值对和单台服务器请求量键值对中的值分别进行清零处理,以保证下一周期中是否对至少一个目标访问接口是否进行限流的处理的准确性。
本实施例中,若定时器未到时,则说明当前周期对访问请求的监听和是否对至少一个目标访问接口是否进行限流还未完成,需要继续对访问请求进行监听,所以继续执行步骤306。
本实施例提供的基于应用程序的限流方法,通过采用热加载的方式将预设配置文件加载到服务器集群中的各服务器的内存中,访问某预设服务器的内存,以从内存中获取预设配置文件,能够保证在服务器内存中的预设配置文件是最新的预设配置文件,并且实时获取到最新的预设配置文件,进而能够保证对应用程序中目标服务中目标访问接口是否进行限流的准确性,以及在满足限流条件下,能够快速有效地实现对目标服务中目标访问接口的限流。
实施例四
图6是本公开一实施例提供的基于应用程序的限流装置的结构示意图,如图6所示,该应用程序中包括多种待访问服务。则本实施例提供的基于应用程序的限流装置40包括:监听模块41,确定模块42,限流模块43。
其中,监听模块41,用于周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,访问请求中包括:目标服务的标识信息。确定模块42,用于根据各目标服务的标识信息确定对应的请求量阈值。确定模块42,还用于确定每个周期对应的预设时间段内各目标服务对应的请求量。限流模块43,用于若确定预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。
本实施例提供的基于应用程序的限流装置可以执行图3所示方法实施例的技术方案,其实现原理和技术效果与图3所示方法实施例类似,在此不再一一赘述。
可选地,访问请求中还包括:目标服务中目标访问接口的标识信息;
相应地,确定模块42,在根据各目标服务的标识信息确定对应的请求量阈值时,具体用于:
根据各目标服务的标识信息和目标服务中目标访问接口的标识信息确定目标访问接口对应的请求量阈值。
可选地,确定模块42,在根据各所述目标服务的标识信息确定对应的请求量阈值时,具体用于:
获取预设配置文件,所述预设配置文件中包括:各待访问服务的标识信息与请求量阈值的映射关系;获取与各所述目标服务的标识信息具有映射关系的请求量阈值;将所述具有映射关系的请求量阈值确定为所述目标服务对应的请求量阈值。
可选地,确定模块42,在获取预设配置文件时,具体用于:
采用热加载的方式将预设配置文件加载到服务器集群中的各服务器的内存中;访问某预设服务器的内存,以从内存中获取预设配置文件。
可选地,请求量阈值包括:各目标访问接口对应的集群请求量阈值。本实施例提供的装置还包括:判断模块,更新模块和创建模块。
其中,判断模块,用于判断在应用程序基础服务对应的缓存中是否存在目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对。更新模块,若确定存在对应的集群请求量键值对,则在缓存中增加集群请求量键值对的值。创建模块,用于若确定不存在对应的集群请求量键值对,则在缓存中创建对应的集群请求量键值对,并进行初始化处理。
相应地,确定模块42,在确定每个周期对应的预设时间段内各目标服务对应的请求量时,具体用于:
从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;将各集群请求量键值对的值确定为对应的集群请求量。
可选地,限流模块43,具体用于:
若确定预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
可选地,请求量阈值还包括:各目标访问接口对应的单台服务器的请求量阈值。
相应地,更新模块,还用于若确定存在对应的集群请求量键值对之后,在各服务器中增加单台服务器请求量键值对的值。创建模块,还用于若确定不存在对应的集群请求量键值对之后,在各服务器中创建对应的单台服务器请求量键值对,并进行初始化处理。
相应地,确定模块42,在确定每个周期对应的预设时间段内各目标服务对应的请求量时,还包括:
获取单台服务器每个周期预设时间段内各目标服务中目标访问接口对应的单台服务器请求量键值对的值;将各单台服务器请求量键值对的值确定为对应的单台服务器请求量。
可选地,限流模块43,具体用于:
若确定预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,或预设时间段内某目标服务中某目标访问接口的单台服务器请求量大于对应的单台服务器请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
可选地,本实施例提供的装置,还包括:清零模块。
其中,清零模块,用于若确定监听时间达到每个周期对应的预设时间段,则对集群请求量键值对和单台服务器请求量分别进行清零处理。
实施例五
图7是用来实现本公开实施例的基于应用程序的限流方法的电子设备的第一框图,如图7所示,本实施例提供的电子设备50包括:存储器51和处理器52。
其中,存储器51用于存储程序指令;处理器52用于调用存储器中的程序指令执行上述实施例一至实施例三中任意一个实施例中的方法。
实施例六
图8是用来实现本公开实施例的基于应用程序的限流方法的电子设备的第二框图,该电子设备可以是计算机,数字广播终端,消息收发设备,平板设备,个人数字助理等。
电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,输入/输出(I/O)接口612,传感器组件614,以及通信组件616。
处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。
存储器604被配置为存储各种类型的数据以支持在装置600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为装置600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到装置600的打开/关闭状态,组件的相对定位,例如组件为装置600的显示器和小键盘,传感器组件614还可以检测装置600或装置600一个组件的位置改变,用户与装置600接触的存在或不存在,装置600方位或加速/减速和装置600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由装置600的处理器620执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述电子设备的方法。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例一至实施例三中任意一个实施例的方法的步骤。
本申请还提供如下实施例:
实施例1、一种基于应用程序的限流方法,其中,所述应用程序中包括多种待访问服务,所述方法包括:
周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;
根据各所述目标服务的标识信息确定对应的请求量阈值;
确定每个周期对应的预设时间段内各目标服务对应的请求量;
若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。
实施例2、根据实施例1所述的方法,其中,所述访问请求中还包括:目标服务中目标访问接口的标识信息;
所述根据各所述目标服务的标识信息确定对应的请求量阈值,包括:
根据各所述目标服务的标识信息和目标服务中目标访问接口的标识信息确定目标访问接口对应的请求量阈值。
实施例3、根据实施例2所述的方法,其中,所述根据各所述目标服务的标识信息确定对应的请求量阈值,包括:
获取预设配置文件,所述预设配置文件中包括:各待访问服务的标识信息与请求量阈值的映射关系;
获取与各所述目标服务的标识信息具有映射关系的请求量阈值;
将所述具有映射关系的请求量阈值确定为所述目标服务对应的请求量阈值。
实施例4、根据实施例3所述的方法,其中,所述获取预设配置文件,包括:
采用热加载的方式将所述预设配置文件加载到所述服务器集群中的各服务器的内存中;
访问某预设服务器的内存,以从所述内存中获取所述预设配置文件。
实施例5、根据实施例2所述的方法,其中,所述请求量阈值包括:各目标访问接口对应的集群请求量阈值;
所述周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求之后,还包括:
判断在应用程序基础服务对应的缓存中是否存在所述目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对;
若确定存在对应的集群请求量键值对,则在缓存中增加所述集群请求量键值对的值;
若确定不存在对应的集群请求量键值对,则在缓存中创建对应的集群请求量键值对,并进行初始化处理;
所述确定每个周期对应的预设时间段内各目标服务对应的请求量,包括:
从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;
将各所述集群请求量键值对的值确定为对应的集群请求量。
实施例6、根据实施例5所述的方法,其中,所述若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作,包括:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
实施例7、根据实施例5所述的方法,其中,所述请求量阈值还包括:各目标访问接口对应的单台服务器的请求量阈值;
所述若确定存在对应的集群请求量键值对之后,还包括:
在各服务器中增加所述单台服务器请求量键值对的值;
若确定不存在对应的集群请求量键值对之后,还包括:
在各服务器中创建对应的单台服务器请求量键值对,并进行初始化处理;
所述确定每个周期对应的预设时间段内各目标服务对应的请求量,还包括:
获取单台服务器每个周期预设时间段内各目标服务中目标访问接口对应的单台服务器请求量键值对的值;
将各所述单台服务器请求量键值对的值确定为对应的单台服务器请求量。
实施例8、根据实施例7所述的方法,其中,所述若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作,包括:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,或预设时间段内某目标服务中某目标访问接口的单台服务器请求量大于对应的单台服务器请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
实施例9、根据实施例7或8所述的方法,其中,还包括:
若确定监听时间达到每个周期对应的预设时间段,则对集群请求量和所述单台服务器请求量分别进行清零处理。
实施例10、一种基于应用程序的限流装置,其中,所述应用程序中包括多种待访问服务,所述装置包括:
监听模块,用于周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;
确定模块,用于根据各所述目标服务的标识信息确定对应的请求量阈值;
所述确定模块,还用于确定每个周期对应的预设时间段内各目标服务对应的请求量;
限流模块,用于若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作。
实施例11、根据实施例10所述的装置,其中,所述访问请求中还包括:目标服务中目标访问接口的标识信息;
所述确定模块,在根据各所述目标服务的标识信息确定对应的请求量阈值时,具体用于:
根据各所述目标服务的标识信息和目标服务中目标访问接口的标识信息确定目标访问接口对应的请求量阈值。
实施例12、根据实施例10所述的装置,其中,所述确定模块,在根据各所述目标服务的标识信息确定对应的请求量阈值时,具体用于:
获取预设配置文件,所述预设配置文件中包括:各待访问服务的标识信息与请求量阈值的映射关系;获取与各所述目标服务的标识信息具有映射关系的请求量阈值;将所述具有映射关系的请求量阈值确定为所述目标服务对应的请求量阈值。
实施例13、根据实施例12所述的装置,其中,所述确定模块,在获取预设配置文件时,具体用于:
采用热加载的方式将所述预设配置文件加载到所述服务器集群中的各服务器的内存中;访问某预设服务器的内存,以从所述内存中获取所述预设配置文件。
实施例14、根据实施例11所述的装置,其中,所述请求量阈值包括:各目标访问接口对应的集群请求量阈值;
所述装置,还包括:
判断模块,用于判断在应用程序基础服务对应的缓存中是否存在所述目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对;
更新模块,若确定存在对应的集群请求量键值对,则在缓存中增加所述集群请求量键值对的值;
创建模块,用于若确定不存在对应的集群请求量键值对,则在缓存中创建对应的集群请求量键值对,并进行初始化处理;
所述确定模块,在确定每个周期对应的预设时间段内各目标服务对应的请求量时,具体用于:
从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;将各所述集群请求量键值对的值确定为对应的集群请求量。
实施例15、根据实施例14所述的装置,其中,所述限流模块,具体用于:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
实施例16、根据实施例14所述的装置,其中,所述请求量阈值还包括:各目标访问接口对应的单台服务器的请求量阈值;
所述更新模块,还用于若确定存在对应的集群请求量键值对之后,在各服务器中增加所述单台服务器请求量键值对的值;
所述创建模块,还用于若确定不存在对应的集群请求量键值对之后,在各服务器中创建对应的单台服务器请求量键值对,并进行初始化处理;
所述确定模块,在确定每个周期对应的预设时间段内各目标服务对应的请求量时,还包括:
获取单台服务器每个周期预设时间段内各目标服务中目标访问接口对应的单台服务器请求量键值对的值;将各所述单台服务器请求量键值对的值确定为对应的单台服务器请求量。
实施例17、根据实施例16所述的装置,其中,所述限流模块,具体用于:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,或预设时间段内某目标服务中某目标访问接口的单台服务器请求量大于对应的单台服务器请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
实施例18、根据实施例16或17所述的装置,其中,还包括:
清零模块,用于若确定监听时间达到每个周期对应的预设时间段,则对集群请求量和所述单台服务器请求量分别进行清零处理。
实施例19、一种电子设备,其中,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如实施例1-9任一项所述的方法。
实施例20、一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如实施例1-9任一项所述的方法。
实施例21、一种计算机程序产品,包括计算机程序,其中,该计算机程序被处理器执行时实现实施例1-9任一项所述的方法的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开的实施例旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (18)
1.一种基于应用程序的限流方法,其特征在于,所述应用程序中包括多种待访问服务,所述方法包括:
周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;
根据各所述目标服务的标识信息确定对应的请求量阈值;
确定每个周期对应的预设时间段内各目标服务对应的请求量;
若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作;所述访问请求中还包括:目标服务中目标访问接口的标识信息,每个所述待访问服务具有一个或多个接口,每个所述接口为所述待访问服务提供不同的功能;
所述根据各所述目标服务的标识信息确定对应的请求量阈值,包括:
根据各所述目标服务的标识信息和目标服务中目标访问接口的标识信息确定目标访问接口对应的请求量阈值。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述目标服务的标识信息确定对应的请求量阈值,包括:
获取预设配置文件,所述预设配置文件中包括:各待访问服务的标识信息与请求量阈值的映射关系;
获取与各所述目标服务的标识信息具有映射关系的请求量阈值;
将所述具有映射关系的请求量阈值确定为所述目标服务对应的请求量阈值。
3.根据权利要求2所述的方法,其特征在于,所述获取预设配置文件,包括:
采用热加载的方式将所述预设配置文件加载到所述服务器集群中的各服务器的内存中;
访问某预设服务器的内存,以从所述内存中获取所述预设配置文件。
4.根据权利要求1所述的方法,其特征在于,所述请求量阈值包括:各目标访问接口对应的集群请求量阈值;
所述周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求之后,还包括:
判断在应用程序基础服务对应的缓存中是否存在所述目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对;
若确定存在对应的集群请求量键值对,则在缓存中增加所述集群请求量键值对的值;
若确定不存在对应的集群请求量键值对,则在缓存中创建对应的集群请求量键值对,并进行初始化处理;
所述确定每个周期对应的预设时间段内各目标服务对应的请求量,包括:
从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;
将各所述集群请求量键值对的值确定为对应的集群请求量。
5.根据权利要求4所述的方法,其特征在于,所述若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作,包括:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
6.根据权利要求4所述的方法,其特征在于,所述请求量阈值还包括:各目标访问接口对应的单台服务器的请求量阈值;
所述若确定存在对应的集群请求量键值对之后,还包括:
在各服务器中增加所述单台服务器请求量键值对的值;
若确定不存在对应的集群请求量键值对之后,还包括:
在各服务器中创建对应的单台服务器请求量键值对,并进行初始化处理;
所述确定每个周期对应的预设时间段内各目标服务对应的请求量,还包括:
获取单台服务器每个周期预设时间段内各目标服务中目标访问接口对应的单台服务器请求量键值对的值;
将各所述单台服务器请求量键值对的值确定为对应的单台服务器请求量。
7.根据权利要求6所述的方法,其特征在于,所述若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作,包括:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,或预设时间段内某目标服务中某目标访问接口的单台服务器请求量大于对应的单台服务器请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
8.根据权利要求6或7所述的方法,其特征在于,还包括:
若确定监听时间达到每个周期对应的预设时间段,则对集群请求量和单台服务器请求量分别进行清零处理。
9.一种基于应用程序的限流装置,其特征在于,所述应用程序中包括多种待访问服务,所述装置包括:
监听模块,用于周期性监听终端设备发送给服务器集群的应用程序中至少一种目标服务的访问请求,所述访问请求中包括:目标服务的标识信息;
确定模块,用于根据各所述目标服务的标识信息确定对应的请求量阈值;
所述确定模块,还用于确定每个周期对应的预设时间段内各目标服务对应的请求量;
限流模块,用于若确定所述预设时间段内某目标服务的请求量大于对应的请求量阈值,则对该目标服务进行限流操作;所述访问请求中还包括:目标服务中目标访问接口的标识信息,每个所述待访问服务具有一个或多个接口,每个所述接口为所述待访问服务提供不同的功能;
所述确定模块,在根据各所述目标服务的标识信息确定对应的请求量阈值时,具体用于:
根据各所述目标服务的标识信息和目标服务中目标访问接口的标识信息确定目标访问接口对应的请求量阈值。
10.根据权利要求9所述的装置,其特征在于,所述确定模块,在根据各所述目标服务的标识信息确定对应的请求量阈值时,具体用于:
获取预设配置文件,所述预设配置文件中包括:各待访问服务的标识信息与请求量阈值的映射关系;获取与各所述目标服务的标识信息具有映射关系的请求量阈值;将所述具有映射关系的请求量阈值确定为所述目标服务对应的请求量阈值。
11.根据权利要求10所述的装置,其特征在于,所述确定模块,在获取预设配置文件时,具体用于:
采用热加载的方式将所述预设配置文件加载到所述服务器集群中的各服务器的内存中;访问某预设服务器的内存,以从所述内存中获取所述预设配置文件。
12.根据权利要求9所述的装置,其特征在于,所述请求量阈值包括:各目标访问接口对应的集群请求量阈值;
所述装置,还包括:
判断模块,用于判断在应用程序基础服务对应的缓存中是否存在所述目标服务的标识信息和目标服务中目标访问接口的标识信息对应的集群请求量键值对;
更新模块,若确定存在对应的集群请求量键值对,则在缓存中增加所述集群请求量键值对的值;
创建模块,用于若确定不存在对应的集群请求量键值对,则在缓存中创建对应的集群请求量键值对,并进行初始化处理;
所述确定模块,在确定每个周期对应的预设时间段内各目标服务对应的请求量时,具体用于:
从缓存中获取每个周期预设时间段内各目标服务中目标访问接口对应的集群请求量键值对的值;将各所述集群请求量键值对的值确定为对应的集群请求量。
13.根据权利要求12所述的装置,其特征在于,所述限流模块,具体用于:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
14.根据权利要求12所述的装置,其特征在于,所述请求量阈值还包括:各目标访问接口对应的单台服务器的请求量阈值;
所述更新模块,还用于若确定存在对应的集群请求量键值对之后,在各服务器中增加所述单台服务器请求量键值对的值;
所述创建模块,还用于若确定不存在对应的集群请求量键值对之后,在各服务器中创建对应的单台服务器请求量键值对,并进行初始化处理;
所述确定模块,在确定每个周期对应的预设时间段内各目标服务对应的请求量时,还包括:
获取单台服务器每个周期预设时间段内各目标服务中目标访问接口对应的单台服务器请求量键值对的值;将各所述单台服务器请求量键值对的值确定为对应的单台服务器请求量。
15.根据权利要求14所述的装置,其特征在于,所述限流模块,具体用于:
若确定所述预设时间段内某目标服务中某目标访问接口的集群请求量大于对应的集群请求量阈值,或预设时间段内某目标服务中某目标访问接口的单台服务器请求量大于对应的单台服务器请求量阈值,则拒绝对该目标服务中该目标访问接口的访问操作。
16.根据权利要求14或15所述的装置,其特征在于,还包括:
清零模块,用于若确定监听时间达到每个周期对应的预设时间段,则对集群请求量和所述单台服务器请求量分别进行清零处理。
17.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1-8任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110102858.9A CN112804160B (zh) | 2021-01-26 | 2021-01-26 | 基于应用程序的限流方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110102858.9A CN112804160B (zh) | 2021-01-26 | 2021-01-26 | 基于应用程序的限流方法、装置、设备、介质及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112804160A CN112804160A (zh) | 2021-05-14 |
CN112804160B true CN112804160B (zh) | 2023-06-06 |
Family
ID=75811796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110102858.9A Active CN112804160B (zh) | 2021-01-26 | 2021-01-26 | 基于应用程序的限流方法、装置、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804160B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679452A (zh) * | 2022-03-01 | 2022-06-28 | 北京金山云网络技术有限公司 | 接口调用方法、装置、电子设备和存储介质 |
CN115086234B (zh) * | 2022-05-09 | 2024-04-26 | 阿里巴巴(中国)有限公司 | 消息处理方法及系统、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
CN109787908A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 服务器限流方法、系统、计算机设备及存储介质 |
CN110324407A (zh) * | 2019-06-04 | 2019-10-11 | 贝壳技术有限公司 | 后台服务器的访问控制方法、装置及存储介质 |
CN110417671A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 数据传输的限流方法和服务器 |
CN111131058A (zh) * | 2019-11-25 | 2020-05-08 | 泰康保险集团股份有限公司 | 访问量控制方法和装置 |
CN111262791A (zh) * | 2020-01-08 | 2020-06-09 | 江苏满运软件科技有限公司 | 一种流量管控方法、装置、电子设备及存储介质 |
CN111988355A (zh) * | 2020-06-29 | 2020-11-24 | 汉海信息技术(上海)有限公司 | 限流方法、装置、服务器及服务器集群 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107222426B (zh) * | 2016-03-21 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 控流的方法、装置及系统 |
-
2021
- 2021-01-26 CN CN202110102858.9A patent/CN112804160B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
CN109787908A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 服务器限流方法、系统、计算机设备及存储介质 |
CN110324407A (zh) * | 2019-06-04 | 2019-10-11 | 贝壳技术有限公司 | 后台服务器的访问控制方法、装置及存储介质 |
CN110417671A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 数据传输的限流方法和服务器 |
CN111131058A (zh) * | 2019-11-25 | 2020-05-08 | 泰康保险集团股份有限公司 | 访问量控制方法和装置 |
CN111262791A (zh) * | 2020-01-08 | 2020-06-09 | 江苏满运软件科技有限公司 | 一种流量管控方法、装置、电子设备及存储介质 |
CN111988355A (zh) * | 2020-06-29 | 2020-11-24 | 汉海信息技术(上海)有限公司 | 限流方法、装置、服务器及服务器集群 |
Also Published As
Publication number | Publication date |
---|---|
CN112804160A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3528466B1 (en) | Information sending method, unit and system | |
CN112492589B (zh) | 一种访问设备标识符的方法及装置 | |
EP3968702A1 (en) | Communication method and apparatus, entity and computer readable storage medium | |
US11245725B2 (en) | Dynamically updating policy controls for mobile devices and applications | |
CN112804160B (zh) | 基于应用程序的限流方法、装置、设备、介质及产品 | |
US20150127831A1 (en) | Method and device for enabling or disabling server in wireless communication system | |
CN113783774A (zh) | 一种跨集群的网络配置方法、装置、通信设备及存储介质 | |
US20240089923A1 (en) | Paging Method, Electronic Device, and Non-Transitory Readable Storage Medium | |
CN110489244B (zh) | 信息处理方法、系统、装置和计算机可读存储介质 | |
CN113039517B (zh) | 一种音频资源调用的方法、装置及电子设备 | |
CN107295493B (zh) | 信息上报方法、装置、终端及计算机可读存储介质 | |
CN111367683A (zh) | 一种结果获取方法、装置及设备 | |
US11582610B1 (en) | Automated security control using log information | |
US20210076242A1 (en) | Method, device and system for measurement of minimization of drive tests | |
CN112866422B (zh) | 一种数据请求处理方法和装置 | |
US11277718B2 (en) | Customer profile and billing lifecycle management in connected endpoints in wireless communication networks | |
CN109032686B (zh) | 数据处理方法及装置 | |
CN107992363B (zh) | 数据的处理方法和装置 | |
CN112506628B (zh) | 代理程序的管理方法、装置、计算机设备及存储介质 | |
US10798771B2 (en) | Communication method and communication apparatus | |
CN115150357B (zh) | 信息处理方法、装置、终端及网络侧设备 | |
CN112351465B (zh) | 网络模式切换方法和装置 | |
CN110995767B (zh) | 一种请求处理方法及装置 | |
WO2023213242A1 (zh) | Ue策略信息的配置方法、装置、第一网络功能及终端 | |
US20230017289A1 (en) | Electronic device and method for using cached data based on subscriber identification information in electronic device |
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 |