CN111131058B - 访问量控制方法和装置 - Google Patents
访问量控制方法和装置 Download PDFInfo
- Publication number
- CN111131058B CN111131058B CN201911164965.3A CN201911164965A CN111131058B CN 111131058 B CN111131058 B CN 111131058B CN 201911164965 A CN201911164965 A CN 201911164965A CN 111131058 B CN111131058 B CN 111131058B
- Authority
- CN
- China
- Prior art keywords
- access
- current limiting
- strategy
- requests
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种访问量控制方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收访问请求;在判断接收的访问请求的数量符合访问量控制条件时:将部分访问请求确定为目标请求,生成响应于目标请求的正常应答数据并返回;针对目标请求之外的访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中;在判断接收的访问请求的数量不符合访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;访问量控制策略是从预设的多条限流策略中确定的,每一限流策略包含限流条件与限流比例。该实施方式能够通过为每一服务端设置访问量控制条件从而为服务端提供个性化的访问量控制功能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种访问量控制方法和装置。
背景技术
随着互联网技术的发展,服务***面临着越来越大的访问压力,如何保证服务***在大规模访问量压力下的稳定与可用性变得越发重要。在现有技术中,通常基于设置在服务端之前的统一网关执行访问量控制(如图1所示),这种控制方法较简单且粒度较粗,难以针对具体的服务端提供个性化的流量控制策略。此外统一网关作为整体***的单点部分,承载全部的访问量压力,其一旦发生故障,易造成整体***的不可用。
发明内容
有鉴于此,本发明实施例提供一种访问量控制方法和装置,能够通过为每一服务端设置访问量控制条件从而为服务端提供个性化的访问量控制功能。
为实现上述目的,根据本发明的一个方面,提供了一种访问量控制方法。
本发明实施例的访问量控制方法包括:接收访问请求;在判断接收的访问请求的数量符合预设的访问量控制条件时:将部分访问请求确定为目标请求,生成响应于每一目标请求的正常应答数据并返回;针对目标请求之外的每一访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中;在判断接收的访问请求的数量不符合所述访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;其中,所述访问量控制策略是从预设的多条限流策略中确定的,每一限流策略都包含限流条件与限流比例。
可选地,所述限流策略包括至少一条性能限流策略;以及,所述访问量控制策略根据以下步骤确定:采集当前统计周期的运行数据,依据所述运行数据获取当前统计周期的性能指标;将限流条件与当前统计周期的性能指标匹配的性能限流策略确定为初选策略,将初选策略中限流比例最大者确定为访问量控制策略。
可选地,所述限流策略进一步包括至少一条可用率限流策略;以及,所述方法进一步包括:在确定访问量控制策略之前:根据所述运行数据获取当前统计周期的可用率指标;将限流条件与所述可用率指标匹配的可用率限流策略确定为所述初选策略。
可选地,所述限流策略进一步包括至少一条定时限流策略,每一定时限流策略的限流条件为限流时间间隔;以及,所述方法进一步包括:在确定访问量控制策略之前,将限流时间间隔包括当前时刻的定时限流策略确定为所述初选策略。
可选地,所述利用预先存储的访问量控制策略判断是否正常响应该访问请求,包括:将该访问请求中携带的客户端标识转换为0与1之间的哈希值;在该哈希值不小于访问量控制策略中的限流比例时,正常响应该访问请求;在该哈希值小于访问量控制策略中的限流比例时,断开与该访问请求之间的连接或者将该访问请求置入所述等待队列中。
可选地,接收的访问请求的数量包括:当前采集周期内接收的访问请求数量或者当前正在处理的访问请求数量;所述访问量控制条件包括:接收的访问请求的数量大于预设阈值;所述目标请求的数量等于所述阈值;所述运行数据包括:每一访问请求的响应结果以及响应时长;以及,所述性能指标包括以下至少一种:响应时长百分线TP指标、响应时长最大值、响应时长平均值。
为实现上述目的,根据本发明的另一方面,提供了一种访问量控制装置。
本发明实施例的访问量控制装置可包括:接收单元,用于接收访问请求;控制单元,用于:在判断接收的访问请求的数量符合预设的访问量控制条件时:将部分访问请求确定为目标请求,生成响应于每一目标请求的正常应答数据并返回;针对目标请求之外的每一访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中;限流单元,用于:在判断接收的访问请求的数量不符合所述访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;其中,所述访问量控制策略是从预设的多条限流策略中确定的,每一限流策略都包含限流条件与限流比例。
为实现上述目的,根据本发明的又一方面,提供了一种电子设备。
本发明的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的访问量控制方法。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的访问量控制方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:
其一,预先为每一服务端设置访问量控制条件从而确定针对访问请求的处理方式,例如在访问请求数量大于预设阈值时,仅对部分访问请求(这些访问请求的数量可等于上述阈值)进行正常响应,将其它请求直接断开或者置入等待队列,这样能够在面临大规模访问量时快速释放服务资源,保证***可用性。
其二,通过为每一服务端设置多条限流策略,在访问请求数量不大于上述阈值时,实时采集服务端的运行数据进而获取其性能、可用率等运行指标,最后利用运行指标从多条限流策略中确定用于实际执行限流的访问量控制策略,由此实现访问量较大时(此时的访问量小于上述大规模访问量)服务端运行情况的智能感知以及访问量的自动控制,可提高***灵敏性、可用性以及服务资源利用率,并实现面对不同访问量压力时的针对性限流措施。此外,通过设置定时限流策略,可在具有周期性特征的流量洪峰来临之前提前部署相应的限流策略从而有效应对。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有技术中的统一网关架构图;
图2是本发明实施例中访问量控制方法的主要步骤示意图;
图3是本发明实施例中访问量控制方法的实现架构示意图;
图4是本发明实施例中确定访问量控制策略的示意图;
图5是本发明实施例中访问量控制装置的组成部分示意图;
图6是根据本发明实施例可以应用于其中的示例性***架构图;
图7是用来实现本发明实施例中访问量控制方法的电子设备结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图2是本发明实施例中访问量控制方法的主要步骤示意图。
如图2所示,本发明实施例的方法可具体按照如下步骤执行:
步骤S201:接收访问请求。
在本发明实施例中,服务端接收客户端发送的访问请求,该访问请求用于调用服务端的本地服务。一般地,访问请求中携带用于唯一识别客户端的客户端标识。
步骤S202:在判断接收的访问请求的数量符合预设的访问量控制条件时:将部分访问请求确定为目标请求,生成响应于每一目标请求的正常应答数据并返回;针对目标请求之外的每一访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中。
在执行本步骤之前,预先为服务端配置访问量控制条件来执行定制化的访问请求限制,例如,访问量控制条件可配置为:“接收的访问请求的数量大于预设阈值”,这说明当步骤S201接收的访问请求的数量大于预设阈值时,对访问请求执行限制操作。其中,接收的访问请求的数量可以是当前采集周期(即距离当前时刻最近的一个采集周期,采集周期可根据实际环境设置为1秒或2秒等)内接收的访问请求数量,也可以是当前正在处理的访问请求数量。
具体应用中,对访问请求执行的上述限制操作可以是:对一部分访问请求正常响应(即生成响应于每一目标请求的正常应答数据并将正常应答数据向客户端返回),对其余访问请求执行断开或者置入等待队列(即令访问请求排队,排队时间超过预设门限值后断开)处理。在本发明实施例中,可将正常响应的那部分访问请求称为目标请求,实际应用场景中,目标请求可通过以下步骤确定。首先将接收到的请求按照请求时间从小到大(即从早到晚)排序,之后将在前的、数量等于访问量控制条件中阈值的访问请求确定为目标请求。
通过上述设置,能够为每一服务端配置定制化的访问量控制条件来执行访问量控制,在当前访问请求数量大于阈值时,即可对阈值数量范围内的访问请求正常响应,并将其它的访问请求断开连接或者置入等待队列,从而保证***可用性。
图3是本发明实施例中访问量控制方法的实现架构示意图。
如图3所示,业务服务单元可实现一整套业务流程,其中可能包含多个业务功能点。可理解,业务功能点可以作为前文介绍的服务端。访问量控制终端与业务功能点集成并部署在一起,并与访问量控制逻辑引擎交互,用于确定访问量控制规则的生效状态。其中,访问量控制规则由上述访问量控制条件与符合该条件时执行的访问量限制操作组成。访问量控制逻辑引擎负责访问量控制规则的定义与存储,并通过与访问量控制终端的交互来下发访问量控制规则。可以理解,访问量控制终端与业务功能点的业务逻辑融合,能够直接统计业务功能点的瞬时访问量并将访问量控制逻辑引擎中定义的访问量控制规则作用到业务功能点,从而实现访问量控制。
一般地,访问量控制规则可包括业务功能点标识、访问压力度量指标(每秒钟接收的访问请求数量或当前正在处理的访问请求数量)、阈值以及超量后的限制操作。
以下以访问量控制规则为“每秒接收到的访问请求大于100个时,将超量部分直接断开”的场景为例说明各端的交互流程。业务服务单元接收来自客户端的访问请求,当访问请求数量不超过100时,所有的请求都能得到正常的返回结果;当访问请求数量超过100时,触发访问量控制规则,访问量控制终端将所有超量的访问请求根据访问量控制规则执行相应处理,保证***整体可用。可以理解,针对业务功能点访问量的计算是动态的,随着服务资源的释放,一旦***的访问请求数量又减少到阈值100以下,新的访问请求可以得到正常的处理,不会触发访问量控制规则导致快速异常状态返回。
这样,本发明即提出一种基于具体业务服务的访问量控制方法,相对于统一网关提供的访问量控制能力,可以实现更细粒度的访问量量控制功能,更灵活的访问量控制规则配置,保证***的可用性,化解由于***单点造成的整体不可用风险。
步骤S203:在判断接收的访问请求的数量不符合访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;其中,访问量控制策略是从预设的多条限流策略中确定的,每一限流策略都包含限流条件与限流比例。
步骤S202为当前访问数量大于阈值时的访问量控制步骤。在当前访问数量不大于阈值时,不需要直接将超量请求断开,此时可以根据服务端的运行数据判断其运行状况进而确定访问量控制策略并最终根据访问量控制策略执行相应的限流处理,以下将说明其具体执行步骤。
1.预先设置多条限流策略,每一限流策略都包含限流条件(即限流处理的触发条件)和限流比例(即不进行正常响应的访问请求比例)。一般地,限流比例为0与1之间(即不小于0且不大于1)的数值。
例如:某服务端的某限流策略为:TP90大于1000毫秒时,自动限流20%的流量。其中,TP90是一种响应时长的百分线TP(Top Percentile)指标,其物理含义为:将该服务端在统计周期内的多个响应时长从小到大排序,位于第90%的响应时间。同样的,TP50指的是将该服务端在统计周期内的多个响应时长从小到大排序,位于第50%的响应时间。在上述限流策略中,限流条件为:TP90大于1000毫秒,限流比例为20%,若该限流策略作为该服务端的访问量控制策略,其可控制该服务端对20%的访问请求不提供调用,对80%的访问请求提供调用。
在本发明实施例中,每一服务端的限流策略可包括:性能限流策略、可用率限流策略以及定时限流策略。其中,性能限流策略的限流条件为服务端的性能指标,如:TP50、TP90、TP99、TP999、响应时间平均值、响应时间最大值等,上例中的限流策略“TP90大于1000毫秒时,自动限流20%的流量”即为性能限流策略。
可用率限流策略的限流条件为服务端的可用率指标,具体应用中,服务端在某统计周期的可用率为该统计周期内服务端的正常调用总数(即成功调用总数)与调用总数之商。例如:以下的限流策略即为可用率限流策略:当服务端可用率小于50%时,自动限流40%的流量。
定时限流策略的限流条件为限流时间间隔,即触发限流操作的预设时间间隔。例如:以下的限流策略即为定时时间间隔:从2017-10-2723:55:00~2017-10-28 00:05:00时间范围内,自动限流80%的流量,其表示:在2017年10月27日23点55分到2018年0点05分的时间间隔内,对80%的访问请求进行限流,其中的“2017-10-27 23:55:00~2017-10-2800:05:00”即为限流时间间隔。
2.从上述限流策略中确定当前的访问量控制策略。
具体地,首先采集服务端在当前统计周期(即距离当前时刻最近的统计周期,统计周期可以设置为1分钟、一小时等)的运行数据,统计运行数据获取服务端在当前统计周期的性能指标;在该服务端的性能限流策略中,确定限流条件与当前统计周期的性能指标匹配的性能限流策略,将其作为该服务端的初选策略。
较佳地,上述运行数据可包括:对每一访问请求的响应结果(即正常响应还是非正常响应)以及响应时间。通过对当前统计周期的运行数据进行统计,可获得服务端在当前统计周期的性能指标,之后可将限流条件匹配于当前统计周期性能指标的限流策略确定为服务端的初选策略。
接着,根据上述运行数据获取服务端在当前统计周期的可用率指标;在服务端的可用率限流策略中,确定限流条件与可用率指标匹配的可用率限流策略,将其作为该服务端的初选策略。
其后,在该服务端的定时限流策略中,确定限流时间间隔含有当前时刻(即当前时刻处于限流时间间隔内)的定时限流策略,将其作为该服务端的初选策略。
最后,将初选策略中调用量限流比例最大者确定为服务端的访问量控制策略,并将该访问量控制策略存储。图4是本发明实施例中确定访问量控制策略的示意图,从性能限流策略、可用率限流策略和定时限流策略中确定初选策略进而得到访问量控制策略的步骤可如图4所示。需要说明的是,本发明不对从性能限流策略中确定初选策略的步骤、从可用率限流策略中确定初选策略的步骤、从定时限流策略中确定初选策略的步骤的执行先后顺序进行任何限制。
3.在判断接收的访问请求的数量不符合访问量控制条件时,针对任一访问请求,利用上述访问量控制策略判断是否正常响应该访问请求。作为一个优选方案,可首先将该访问请求中携带的客户端标识转换为0与1之间的哈希值;在该哈希值不小于访问量控制策略中的限流比例时,正常响应该访问请求;在该哈希值小于访问量控制策略中的限流比例时,断开与该访问请求之间的连接或者将该访问请求置入等待队列中。通过上述设置,即可实现符合限流比例的限流操作。
可以理解,如果当前统计周期的性能指标和可用率指标与各限流条件均不相符,则说明服务端当前运行正常,如果此时不处于定时限流策略中的限流时间间隔,服务端即可针对每一访问请求正常响应。
在本发明实施例的技术方案中,预先为每一服务端设置访问量控制条件从而确定针对访问请求的处理方式,例如在访问请求数量大于预设阈值时,仅对部分访问请求进行正常响应,将其它请求直接断开或者置入等待队列,这样能够在面临大规模访问量时快速释放服务资源,保证***可用性。另外,通过为每一服务端设置多条限流策略,在访问请求数量不大于上述阈值时,实时采集业务服务的运行数据进而获取其性能、可用率等运行指标,最后利用运行指标从多条限流策略中确定用于实际执行限流的访问量控制策略,由此实现访问量较大时业务服务运行情况的智能感知以及访问量的自动控制,可提高***灵敏性、可用性以及服务资源利用率,并实现面对不同访问量压力时的针对性限流措施。此外,通过设置定时限流策略,可在具有周期性特征的流量洪峰来临之前提前部署相应的限流策略从而有效应对。
需要说明的是,对于前述的各方法实施例,为了便于描述,将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,某些步骤事实上可以采用其它顺序进行或者同时进行。此外,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是实现本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图5所示,本发明实施例提供的访问量控制装置500可以包括:接收单元501、控制单元502和限流单元503。
其中,接收单元501可用于接收访问请求;控制单元502可用于:在判断接收的访问请求的数量符合预设的访问量控制条件时:将部分访问请求确定为目标请求,生成响应于每一目标请求的正常应答数据并返回;针对目标请求之外的每一访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中;限流单元503可用于:在判断接收的访问请求的数量不符合所述访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;其中,所述访问量控制策略是从预设的多条限流策略中确定的,每一限流策略都包含限流条件与限流比例。
较佳地,所述限流策略包括至少一条性能限流策略;限流单元503可进一步用于:采集当前统计周期的运行数据,依据所述运行数据获取当前统计周期的性能指标;将限流条件与当前统计周期的性能指标匹配的性能限流策略确定为初选策略,将初选策略中限流比例最大者确定为访问量控制策略。
在一些实施例中,所述限流策略进一步包括至少一条可用率限流策略;限流单元503可进一步用于:在确定访问量控制策略之前:根据所述运行数据获取当前统计周期的可用率指标;将限流条件与所述可用率指标匹配的可用率限流策略确定为所述初选策略。
作为优选方案,所述限流策略可进一步包括至少一条定时限流策略,每一定时限流策略的限流条件为限流时间间隔;限流单元503可进一步用于:在确定访问量控制策略之前,将限流时间间隔包括当前时刻的定时限流策略确定为所述初选策略。
在一可选实现方式中,限流单元503可进一步用于:将该访问请求中携带的客户端标识转换为0与1之间的哈希值;在该哈希值不小于访问量控制策略中的限流比例时,正常响应该访问请求;在该哈希值小于访问量控制策略中的限流比例时,断开与该访问请求之间的连接或者将该访问请求置入所述等待队列中。
此外,在本发明实施例中,接收的访问请求的数量包括:当前采集周期内接收的访问请求数量或者当前正在处理的访问请求数量;所述访问量控制条件包括:接收的访问请求的数量大于预设阈值;所述目标请求的数量等于所述阈值;所述运行数据包括:每一访问请求的响应结果以及响应时长;以及,所述性能指标包括以下至少一种:响应时长百分线TP指标、响应时长最大值、响应时长平均值。
在本发明实施例的技术方案中,预先为每一服务端设置访问量控制条件从而确定针对访问请求的处理方式,例如在访问请求数量大于预设阈值时,仅对部分访问请求进行正常响应,将其它请求直接断开或者置入等待队列,这样能够在面临大规模访问量时快速释放服务资源,保证***可用性。另外,通过为每一服务端设置多条限流策略,在访问请求数量不大于上述阈值时,实时采集业务服务的运行数据进而获取其性能、可用率等运行指标,最后利用运行指标从多条限流策略中确定用于实际执行限流的访问量控制策略,由此实现访问量较大时业务服务运行情况的智能感知以及访问量的自动控制,可提高***灵敏性、可用性以及服务资源利用率,并实现面对不同访问量压力时的针对性限流措施。此外,通过设置定时限流策略,可在具有周期性特征的流量洪峰来临之前提前部署相应的限流策略从而有效应对。
图6示出了可以应用本发明实施例的访问量控制方法或访问量控制装置的示例性***架构600。
如图6所示,***架构600可以包括终端设备601、602、603,网络604和服务器605(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种客户端应用,例如访问量控制应用(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所操作的访问量控制应用提供支持的后台服务器(仅为示例)。后台服务器可以对接收到的访问量限制请求进行处理,并将处理结果(例如经过限流后的当前访问量情况--仅为示例)反馈给终端设备601、602、603。
需要说明的是,本发明实施例所提供的访问量控制方法一般由服务器605执行,相应地,访问量控制装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本发明还提供了一种电子设备。本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的访问量控制方法。
下面参考图7,其示出了适于用来实现本发明实施例的电子设备的计算机***700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机***700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有计算机***700操作所需的各种程序和数据。CPU701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文的主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在上述实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元701执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。在本发明中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元和控制单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“向控制单元发送访问请求的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中的。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该设备执行时,使得该设备执行的步骤包括:接收访问请求;在判断接收的访问请求的数量符合预设的访问量控制条件时:将部分访问请求确定为目标请求,生成响应于每一目标请求的正常应答数据并返回;针对目标请求之外的每一访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中;在判断接收的访问请求的数量不符合所述访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;其中,所述访问量控制策略是从预设的多条限流策略中确定的,每一限流策略都包含限流条件与限流比例。
在本发明实施例的技术方案中,预先为每一服务端设置访问量控制条件从而确定针对访问请求的处理方式,例如在访问请求数量大于预设阈值时,仅对部分访问请求进行正常响应,将其它请求直接断开或者置入等待队列,这样能够在面临大规模访问量时快速释放服务资源,保证***可用性。另外,通过为每一服务端设置多条限流策略,在访问请求数量不大于上述阈值时,实时采集业务服务的运行数据进而获取其性能、可用率等运行指标,最后利用运行指标从多条限流策略中确定用于实际执行限流的访问量控制策略,由此实现访问量较大时业务服务运行情况的智能感知以及访问量的自动控制,可提高***灵敏性、可用性以及服务资源利用率,并实现面对不同访问量压力时的针对性限流措施。此外,通过设置定时限流策略,可在具有周期性特征的流量洪峰来临之前提前部署相应的限流策略从而有效应对。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种访问量控制方法,其特征在于,包括:
接收访问请求;
在判断接收的访问请求的数量符合预设的访问量控制条件时:将部分访问请求确定为目标请求,生成响应于每一目标请求的正常应答数据并返回;针对目标请求之外的每一访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中;
在判断接收的访问请求的数量不符合所述访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;其中,所述访问量控制策略是从预设的多条限流策略中确定的,每一限流策略都包含限流条件与限流比例;所述访问量控制条件包括:接收的访问请求的数量大于预设阈值;所述目标请求的数量等于所述阈值。
2.根据权利要求1所述的方法,其特征在于,所述限流策略包括至少一条性能限流策略;以及,所述访问量控制策略根据以下步骤确定:
采集当前统计周期的运行数据,依据所述运行数据获取当前统计周期的性能指标;
将限流条件与当前统计周期的性能指标匹配的性能限流策略确定为初选策略,将初选策略中限流比例最大者确定为访问量控制策略。
3.根据权利要求2所述的方法,其特征在于,所述限流策略进一步包括至少一条可用率限流策略;以及,所述方法进一步包括:在确定访问量控制策略之前:
根据所述运行数据获取当前统计周期的可用率指标;
将限流条件与所述可用率指标匹配的可用率限流策略确定为所述初选策略。
4.根据权利要求2所述的方法,其特征在于,所述限流策略进一步包括至少一条定时限流策略,每一定时限流策略的限流条件为限流时间间隔;以及,所述方法进一步包括:
在确定访问量控制策略之前,将限流时间间隔包括当前时刻的定时限流策略确定为所述初选策略。
5.根据权利要求1所述的方法,其特征在于,所述利用预先存储的访问量控制策略判断是否正常响应该访问请求,包括:
将该访问请求中携带的客户端标识转换为0与1之间的哈希值;
在该哈希值不小于访问量控制策略中的限流比例时,正常响应该访问请求;
在该哈希值小于访问量控制策略中的限流比例时,断开与该访问请求之间的连接或者将该访问请求置入所述等待队列中。
6.根据权利要求1所述的方法,其特征在于,
接收的访问请求的数量包括:当前采集周期内接收的访问请求数量或者当前正在处理的访问请求数量。
7.根据权利要求2-4中任一所述的方法,其特征在于,
所述运行数据包括:每一访问请求的响应结果以及响应时长;
以及,所述性能指标包括以下至少一种:响应时长百分线TP指标、响应时长最大值、响应时长平均值。
8.一种访问量控制装置,其特征在于,包括:
接收单元,用于接收访问请求;
控制单元,用于:在判断接收的访问请求的数量符合预设的访问量控制条件时:将部分访问请求确定为目标请求,生成响应于每一目标请求的正常应答数据并返回;针对目标请求之外的每一访问请求,断开与该访问请求的连接或将该访问请求置入预设的等待队列中;
限流单元,用于:在判断接收的访问请求的数量不符合所述访问量控制条件时:针对任一访问请求,利用预先存储的访问量控制策略判断是否正常响应该访问请求;其中,所述访问量控制策略是从预设的多条限流策略中确定的,每一限流策略都包含限流条件与限流比例;所述访问量控制条件包括:接收的访问请求的数量大于预设阈值;所述目标请求的数量等于所述阈值。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911164965.3A CN111131058B (zh) | 2019-11-25 | 2019-11-25 | 访问量控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911164965.3A CN111131058B (zh) | 2019-11-25 | 2019-11-25 | 访问量控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111131058A CN111131058A (zh) | 2020-05-08 |
CN111131058B true CN111131058B (zh) | 2023-06-30 |
Family
ID=70496598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911164965.3A Active CN111131058B (zh) | 2019-11-25 | 2019-11-25 | 访问量控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111131058B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113765969A (zh) * | 2020-09-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种流量控制方法和装置 |
CN112367266A (zh) * | 2020-10-29 | 2021-02-12 | 北京字节跳动网络技术有限公司 | 限流方法、装置、电子设备和计算机可读介质 |
CN112671897B (zh) * | 2020-12-22 | 2023-03-21 | 北京达佳互联信息技术有限公司 | 分布式***的访问方法、装置、存储介质、设备和产品 |
CN112804160B (zh) * | 2021-01-26 | 2023-06-06 | 北京嘀嘀无限科技发展有限公司 | 基于应用程序的限流方法、装置、设备、介质及产品 |
CN112764937B (zh) * | 2021-01-29 | 2022-04-15 | 中国平安人寿保险股份有限公司 | 访问量控制方法、装置、计算机设备及存储介质 |
CN113329011B (zh) * | 2021-05-27 | 2022-07-08 | 北京天空卫士网络安全技术有限公司 | 一种安全访问控制方法和装置 |
CN114553936B (zh) * | 2022-02-18 | 2024-01-30 | 北京达佳互联信息技术有限公司 | 连接方法、装置、电子设备和计算机可读存储介质 |
CN114745329B (zh) * | 2022-03-30 | 2024-03-22 | 青岛海尔科技有限公司 | 流量控制方法和装置、存储介质及电子装置 |
CN115361339B (zh) * | 2022-08-15 | 2024-03-01 | 中国工商银行股份有限公司 | 流量控制方法、装置、电子设备和存储介质 |
CN115051952A (zh) * | 2022-08-16 | 2022-09-13 | 阿里巴巴(中国)有限公司 | 限流处理方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9386019B1 (en) * | 2013-03-14 | 2016-07-05 | Ca, Inc. | System and method for controlled access to network devices |
CN110071952B (zh) * | 2018-01-24 | 2023-08-08 | 北京京东尚科信息技术有限公司 | 服务调用量的控制方法和装置 |
-
2019
- 2019-11-25 CN CN201911164965.3A patent/CN111131058B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111131058A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131058B (zh) | 访问量控制方法和装置 | |
CN109246229B (zh) | 一种分发资源获取请求的方法和装置 | |
CN109684358B (zh) | 数据查询的方法和装置 | |
CN110276182B (zh) | Api分布式限流的实现方法 | |
CN107341050B (zh) | 基于动态线程池的服务处理方法和装置 | |
CN110858843B (zh) | 业务请求处理方法、装置及计算机可读存储介质 | |
CN109936613B (zh) | 应用于服务器的容灾方法和装置 | |
CN109495542B (zh) | 基于性能监控的负载分配方法及终端设备 | |
CN112839067B (zh) | 一种数据同步方法及装置 | |
CN107995286B (zh) | 基于dubbo平台的服务自动启停方法、服务器及存储介质 | |
CN113381944A (zh) | ***限流方法、装置、电子设备、介质和程序产品 | |
CN108650667A (zh) | 终端调度方法和装置 | |
CN109428926B (zh) | 一种调度任务节点的方法和装置 | |
CN115525411A (zh) | 处理业务请求的方法、装置、电子设备和计算机可读介质 | |
CN110071952B (zh) | 服务调用量的控制方法和装置 | |
CN109587068B (zh) | 流量切换方法、装置、设备及计算机可读存储介质 | |
CN109800085B (zh) | 资源配置的检测方法、装置、存储介质和电子设备 | |
CN112448987A (zh) | 一种熔断降级的触发方法、***和存储介质 | |
CN113765966A (zh) | 一种负载均衡方法和装置 | |
CN114979250B (zh) | 消息推送方法、装置和设备 | |
CN116661960A (zh) | 一种批量任务处理方法、装置、设备以及存储介质 | |
CN114745276B (zh) | 交换机带宽调整方法、装置、电子设备和计算机可读介质 | |
CN115543416A (zh) | 一种配置更新方法、装置、电子设备及存储介质 | |
CN115766484A (zh) | 业务降级方法、装置、设备、计算机可读介质和程序产品 | |
CN114374657A (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 |