CN106612238A - 流量控制方法、装置和*** - Google Patents

流量控制方法、装置和*** Download PDF

Info

Publication number
CN106612238A
CN106612238A CN201510689426.7A CN201510689426A CN106612238A CN 106612238 A CN106612238 A CN 106612238A CN 201510689426 A CN201510689426 A CN 201510689426A CN 106612238 A CN106612238 A CN 106612238A
Authority
CN
China
Prior art keywords
current limliting
threshold
current
notified
network
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.)
Granted
Application number
CN201510689426.7A
Other languages
English (en)
Other versions
CN106612238B (zh
Inventor
陈虓将
刘彦梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510689426.7A priority Critical patent/CN106612238B/zh
Publication of CN106612238A publication Critical patent/CN106612238A/zh
Application granted granted Critical
Publication of CN106612238B publication Critical patent/CN106612238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提出一种流量控制方法和装置,该流量控制方法包括:检测当前的网络流量值;比较当前的网络流量值与预设的多个阈值;当当前的网络流量值大于第一阈值并小于第二阈值时,向发起网络请求的客户端返回第一限流通知;当当前的网络流量值大于第二阈值时,向发起网络请求的客户端返回第二限流通知;其中,第一阈值小于第二阈值;所述第一限流通知中包括网络请求的调整后的发送时间间隔和第一有效时间,以使所述客户端在所述第一有效时间内,根据所述发送时间间隔发送网络请求;所述第二限流通知中包括:第二有效时间,以使所述客户端在所述第二有效时间内停止发送网络请求。该方法能够解决流量控制时仅设置单一阈值时存在的一些问题。

Description

流量控制方法、装置和***
技术领域
本申请涉及数据处理技术领域,尤其涉及一种流量控制方法、装置和***。
背景技术
随着互联网的普及,越来越多的用户使用互联网进行信息查询、网络购物等。当客户端的使用人数很多时,会给服务端造成很大的流量压力。现有技术中,通常是在服务端设置一个阈值,当流量超出该阈值时,服务端向客户端发送错误码,客户端接收到错误码后在一段时间内停止向服务端发送网络请求。
但是,在服务端仅设置一个阈值的方案会存在用户体验差、单一的阈值难以合理设置、服务端容易被突发流量冲垮等问题。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的一个目的在于提出一种流量控制方法,该方法可以解决流量控制时仅设置单一阈值时存在的上述问题。
本申请的另一个目的在于提出一种流量控制装置。
本申请的另一个目的在于提出一种流量控制***。
为达到上述目的,本申请第一方面实施例提出的流量控制方法,包括:检测当前的网络流量值;比较当前的网络流量值与预设的多个阈值;当当前的网络流量值大于第一阈值并小于第二阈值时,向发起网络请求的客户端返回第一限流通知;当当前的网络流量值大于第二阈值时,向发起网络请求的客户端返回第二限流通知;其中,第一阈值小于第二阈值;所述第一限流通知中包括网络请求的调整后的发送时间间隔和第一有效时间,以使所述客户端在所述第一有效时间内,根据所述发送时间间隔发送网络请求;所述第二限流通知中包括:第二有效时间,以使所述客户端在所述第二有效时间内停止发送网络请求。
本申请第一方面实施例提出的流量控制方法,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
为达到上述目的,本申请第二方面实施例提出的流量控制方法,包括:接收服务端发送的限流通知,所述限流通知是服务端比较当前的网络流量值与预设的多个阈值后得到的;其中,当当前的网络流量值大于第一阈值并小于第二阈值时,所述限流通知是包括网络请求的调整后的发送时间间隔和第一有效时间的第一限流通知,当当前的网络流量值大于第二阈值时,所述限流通知是包括第二有效时间的第二限流通知;其中,第一阈值小于第二阈值;根据所述限流通知进行流量控制;其中,当所述限流通知是第一限流通知时,在所述第一有效时间内,根据所述发送时间间隔发送网络请求,当所述限流通知是第二限流通知时,在所述第二有效时间内停止发送网络请求。
本申请第二方面实施例提出的流量控制方法,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
为达到上述目的,本申请第三方面实施例提出的流量控制装置,包括:检测模块,用于检测当前的网络流量值;确定模块,用于比较当前的网络流量值与预设的多个阈值;发送模块,用于当当前的网络流量值大于第一阈值并小于第二阈值时,向发起网络请求的客户端返回第一限流通知;当当前的网络流量值大于第二阈值时,向发起网络请求的客户端返回第二限流通知;其中,第一阈值小于第二阈值;所述第一限流通知中包括网络请求的调整后的发送时间间隔和第一有效时间,以使所述客户端在所述第一有效时间内,根据所述发送时间间隔发送网络请求;所述第二限流通知中包括:第二有效时间,以使所述客户端在所述第二有效时间内停止发送网络请求。
本申请第三方面实施例提出的流量控制装置,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
为达到上述目的,本申请第四方面实施例提出的流量控制装置,包括:接收模块,用于接收服务端发送的限流通知,所述限流通知是服务端比较当前的网络流量值与预设的多个阈值后得到的;其中,当当前的网络流量值大于第一阈值并小于第二阈值时,所述限流通知是包括网络请求的调整后的发送时间间隔和第一有效时间的第一限流通知,当当前的网络流量值大于第二阈值时,所述限流通知是包括第二有效时间的第二限流通知;其中,第一阈值小于第二阈值;控制模块,用于根据所述限流通知进行流量控制;其中,当所述限流通知是第一限流通知时,在所述第一有效时间内,根据所述发送时间间隔发送网络请求,当所述限流通知是第二限流通知时,在所述第二有效时间内停止发送网络请求。
本申请第四方面实施例提出的流量控制装置,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
为达到上述目的,本申请第五方面实施例提出的流量控制***,包括:本申请第三方面实施例提出的流量控制装置,以及,本申请第四方面实施例提出的流量控制装置。
本申请第五方面实施例提出的流量控制***,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一实施例提出的流量控制方法的流程示意图;
图2是本申请另一实施例提出的流量控制方法的流程示意图;
图3是本申请另一实施例提出的流量控制方法的流程示意图;
图4是本申请另一实施例提出的流量控制装置的结构示意图;
图5是本申请另一实施例提出的流量控制装置的结构示意图;
图6是本申请另一实施例提出的流量控制装置的结构示意图;
图7是本申请另一实施例提出的流量控制***的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本申请一实施例提出的流量控制方法的流程示意图,该方法以服务端的执行流程为例,该方法包括:
S11:检测当前的网络流量值。
其中,网络流量值可以用每秒网络请求个数(query per second,QPS)表示,每个服务器可以实时检测自身的QPS,从而得到当前的网络流量值。每个服务器在检测自身的QPS时,例如,服务器接收客户端发送的网络请求,对1秒内的网络请求进行数量统计,从而得到QPS。
S12:比较当前的网络流量值与预设的多个阈值。
本实施例中,设置的多个阈值以包括第一阈值和第二阈值为例,其中,第一阈值小于第二阈值。
S13:当当前的网络流量值大于第一阈值并小于第二阈值时,向发起网络请求的客户端返回第一限流通知;当当前的网络流量值大于第二阈值时,向发起网络请求的客户端返回第二限流通知;其中,第一阈值小于第二阈值。
所述第一限流通知中包括网络请求的调整后的发送时间间隔和第一有效时间,以使所述客户端在所述第一有效时间内,根据所述发送时间间隔发送网络请求;所述第二限流通知中包括:第二有效时间,以使所述客户端在所述第二有效时间内停止发送网络请求。
其中,客户端和服务端可以预先配置一致的限流策略,从而客户端可以根据服务端发送的限流通知消息以及预设的限流策略进行相应的流量控制。
为了简化说明,当前的网络流量值与预设的多个阈值的比较结果与限流策略之间的关系可以用状态与限流策略之间的关系表示。
例如,在设置第一阈值和第二阈值后,第一阈值和第二阈值可以将状态分为三种,分别用正常状态、低压限流状态和高压限流状态表示。
具体的,如果当前的网络流量值小于第一阈值,则确定当前所处的状态是正常状态,如果当前的网络流量值大于第一阈值,且小于第二阈值,则确定当前所处的状态是低压限流状态,如果当前的网络流量值大于第二阈值,则确定当前所处的状态是高压限流状态。
如表1所示,状态与限流策略之间的关系可以包括:
表1
一些实施例中,本实施例的服务端具体是指单台服务器,相应的,预设的阈值是根据单台限流阈值以及预设系数确定的,所述单台限流阈值是根据集群整体能力值与集群服务器总数确定的。
其中,服务端通常对外表现的是集群整体能力值,例如,当前的QPS大于集群整体能力值m时,确定当前所处的状态是高压限流状态,如果机器服务器总数是n,则上述的第二阈值对应的单台限流阈值是m/n,另外,可以对应不同的服务器设置不同的预设系数,从而用m/n乘以相应的预设系数,得到每台服务器对应的第二阈值。类似的,第一阈值也可以根据相应的单台限流阈值和预设系数确定。
本实施例中,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。进一步的,通过客户端根据服务端发送的第一限流通知或第二限流通知和预设的限流策略进行流量控制,可以实现客户端与服务端联动,兼顾用户体验和***安全,实现***柔性可用。进一步的,通过单台服务器的执行,可以提高反应速度。
一些实施例中,流量控制可以分为全局控制模式和分业务控制模式,相应的,上述的网络流量值可以包括:全局网络流量值和/或分业务的网络流量值。
图2是本申请另一实施例提出的流量控制方法的流程示意图,本实施例以网络流量值包括全局网络流量值和分业务的网络流量值为例,该方法包括:
S21:服务器接收客户端发送的网络请求。
本实施例以服务端的单台服务器的执行为例。
相对于服务器集群方式,单台服务器可以独立执行,不需要集群内的服务器进行状态同步,从而可以保证流量控制的及时迅速。
S22:服务器统计得到全局QPS,以及,获取全局流量控制的多个阈值。
例如,服务器中分别对应全局流量控制和分业务的流量控制设置全局QPS计数器和分业务QPS计数器,进一步的,对应不同的业务,可以采用不同的分业务QPS计数器。
在统计全局QPS时,例如,每接收到一个网络请求,将全局QPS计数器的原有计数值加1,统计一秒内的请求次数,从而得到全局QPS,并在每秒结束后清零,以便对后续的QPS进行统计。在时间上以服务器的时间为准。
另外,全局QPS和分业务QPS的初始值可以设置为0。
其中,服务器内可以预先配置全局流量控制对应的多个阈值,以及,分业务控制对应的多个阈值。全局流量控制对应的多个阈值与分业务控制对应的多个阈值可以相同或不同,不同的分业务控制对应的多个阈值可以相同或不同。
S23:比较全局QPS与全局流量控制的多个阈值。
假设全局流量控制的多个阈值用T11和T12表示,其中,T11小于T12,则可以将全局QPS分别与T11和T12进行比较。
另外,可以理解的是,T11和T12可以将全局状态分为三种,分别称为全局正常状态、全局高压限流状态和全局低压限流状态,如果全局QPS小于或等于T11,则确定为全局正常状态,如果全局QPS大于T11且小于或等于T12,则确定为全局低压限流状态,如果全局QPS大于T12,则确定为全局高压限流状态。S24:如果全局QPS大于T11,则向客户端发送全局限流通知。
其中,全局限流通知可以分为全局高压限流通知和全局低压限流通知,与上述的第一限流通知和第二限流通知对应,全局高压限流通知和全局低压限流通知可以理解为是全局流量控制时的第二限流通知和第一限流通知,具体的,当全局QPS大于T12时,服务端向客户端发送全局高压限流通知,当全局QPS大于T11并小于T12时,服务端向客户端发送全局低压限流通知。
限流通知中可以包括状态码,以区分全局限流通知和分业务限流通知,另外,还可以包括状态信息及相应的参数信息等,以区分高压限流和低压限流。
如表2所示,全局限流通知的格式是:
表2
其中,状态码用于区分全局限流通知和分业务限流通知,本实施例中,以4xx表示全局限流通知,4xy表示分业务限流通知为例。
x-delay是状态信息,例如,-1表示高压限流状态,为正整数表示低压限流状态,且客户端发送网络请求的时间间隔是该正整数。
x-expire是有效时间。
S25:如果全局QPS小于T11,则确定所述网络请求属于的业务,并统计得到所述业务对应的分业务QPS,以及,获取所述业务对应的分业务流量控制的多个阈值。
其中,可以预先配置网络请求与业务之间的关联关系,从而可以确定每个网络请求属于的业务,如交易、支付等业务。
在确定出相应的业务后,通过相应业务对应的分业务QPS计数器,类似对全局QPS的统计,可以得到分业务QPS。另外,服务器内可以预先配置每种业务对应的分业务流量控制的多个阈值,从而可以获取该业务对应的分业务流量控制的多个阈值,例如,用T21和T22表示。
S26:比较所述分业务QPS与所述分业务流量控制的多个阈值。
假设分业务流量控制的多个阈值用T21和T22表示,其中,T21小于T22,则可以将分业务QPS分别与T21和T22进行比较。
另外,可以理解的是,T21和T22可以将分业务状态分为三种,分别称为分业务正常状态、分业务高压限流状态和分业务低压限流状态,如果分业务QPS小于或等于T21,则确定为分业务正常状态,如果分业务QPS大于T21且小于或等于T22,则确定为分业务低压限流状态,如果分业务QPS大于T22,则确定为分业务高压限流状态。
S27:如果分业务QPS大于T21,则向客户端发送分业务限流通知。
其中,分业务限流通知可以分为分业务高压限流通知和分业务低压限流通知,与上述的第一限流通知和第二限流通知对应,分业务高压限流通知和分业务低压限流通知可以理解为是分业务流量控制时的第二限流通知和第一限流通知,具体的,当分业务QPS大于T22时,服务端向客户端发送分业务高压限流通知,当全局QPS大于T21并小于T22时,服务端向客户端发送分业务低压限流通知。
限流通知中可以包括状态码,以区分全局限流通知和分业务限流通知,另外,还可以包括状态信息及相应的参数信息等,以区分高压限流和低压限流。
如表3所示,分业务限流通知的格式是:
表3
其中,状态码用于区分全局限流通知和分业务限流通知,本实施例中,以4xx表示全局限流通知,4xy表示分业务限流通知为例。
x-delay是状态信息,例如,-1表示高压限流状态,为正整数表示低压限流状态,且客户端发送网络请求的时间间隔是该正整数。
x-expire是有效时间。
x-api是业务标识。
S28:如果分业务QPS小于T21,则正常处理所述网络请求。
本实施例中,在低压限流时,客户端可以以较低的频率继续发送网络请求,不影响核心功能的使用,提升限流状态下的用户体验。当服务端流量触发高压限流时,客户端在有效时间内停止向服务端发送网络请求,以减轻服务端的压力,保证***安全。
图3是本申请另一实施例提出的流量控制方法的流程示意图,该方法以客户端的执行流程为例,该方法包括:
S31:接收服务端发送的限流通知,所述限流通知是服务端比较当前的网络流量值与预设的多个阈值后得到的。
其中,当当前的网络流量值大于第一阈值并小于第二阈值时,所述限流通知是包括网络请求的调整后的发送时间间隔和第一有效时间的第一限流通知,当当前的网络流量值大于第二阈值时,所述限流通知是包括第二有效时间的第二限流通知;其中,第一阈值小于第二阈值。
S32:根据所述限流通知进行流量控制;
其中,当所述限流通知是第一限流通知时,在所述第一有效时间内,根据所述发送时间间隔发送网络请求,当所述限流通知是第二限流通知时,在所述第二有效时间内停止发送网络请求。
其中,如果有效时间内收到同类的限流通知,则用最新收到的限流通知更新原有的限流通知,根据最新收到的限流通知进行流量控制。
一些实施例中,所述限流通知包括:全局限流通知,和/或,分业务限流通知。
一些实施例中,所述根据所述限流通知进行流量控制,包括:
获取待发送的网络请求;
如果所述待发送的网络请求匹配到的限流通知包括:全局限流通知和分业务限流通知,根据所述全局限流通知和所述分业务限流通知,分别确定下一次发送时间,得到两个下一次发送时间;
在两个下一次发送时间中的最大值对应的时间,向服务端发送所述待发送的网络请求。
例如,客户端接收到全局限流通知和分业务限流通知后,分别进行保存,并计算相应的下一次的发送时间。
例如:当前时间为t_now,客户端本地有两条规则:
(a)全局规则:发包最小延迟100ms,有效时间未结束,上一次发送时间为t1,则下一次发送时间为r1=max(t1+100ms,t_now);
(b)分业务规则(当前待发请求属于该业务):发包最小延迟200ms,有效时间未结束,上一次发送时间为t2,则下一次发送时间为r2=max(t2+200ms,t_now);
如果待发送的网络请求只匹配全局规则,那么最终可发送时间点为r1;如果同时匹配全局和分业务两条规则,那么最终的可发送时间点为max(r1,r2)。
本实施例中,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
图4是本申请另一实施例提出的流量控制装置的结构示意图,该装置40包括:检测模块41、确定模块42和发送模块43。
检测模块41,用于检测当前的网络流量值;
其中,网络流量值可以用每秒网络请求个数(query per second,QPS)表示,每个服务器可以实时检测自身的QPS,从而得到当前的网络流量值。每个服务器在检测自身的QPS时,例如,服务器接收客户端发送的网络请求,对1秒内的网络请求进行数量统计,从而得到QPS。
确定模块42,用于比较当前的网络流量值与预设的多个阈值;
本实施例中,设置的多个阈值以包括第一阈值和第二阈值为例,其中,第一阈值小于第二阈值。
发送模块43,用于当当前的网络流量值大于第一阈值并小于第二阈值时,向发起网络请求的客户端返回第一限流通知;当当前的网络流量值大于第二阈值时,向发起网络请求的客户端返回第二限流通知;其中,第一阈值小于第二阈值;
所述第一限流通知中包括网络请求的调整后的发送时间间隔和第一有效时间,以使所述客户端在所述第一有效时间内,根据所述发送时间间隔发送网络请求;所述第二限流通知中包括:第二有效时间,以使所述客户端在所述第二有效时间内停止发送网络请求。
其中,客户端和服务端可以预先配置一致的限流策略,从而客户端可以根据服务端发送的限流通知消息以及预设的限流策略进行相应的流量控制。
为了简化说明,当前的网络流量值与预设的多个阈值的比较结果与限流策略之间的关系可以用状态与限流策略之间的关系表示。
例如,在设置第一阈值和第二阈值后,第一阈值和第二阈值可以将状态分为三种,分别用正常状态、低压限流状态和高压限流状态表示。
具体的,如果当前的网络流量值小于第一阈值,则确定当前所处的状态是正常状态,如果当前的网络流量值大于第一阈值,且小于第二阈值,则确定当前所处的状态是低压限流状态,如果当前的网络流量值大于第二阈值,则确定当前所处的状态是高压限流状态。
状态与限流策略之间的关系可以如表1所示。
一些实施例中,当所述限流通知分为全局限流通知和分业务限流通知时,所述限流通知中还包括:用于区分全局限流通知和分业务限流通知的状态码。
一些实施例中,所述阈值是根据单台限流阈值以及预设系数确定的,所述单台限流阈值是根据集群整体能力值与集群服务器总数确定的。
其中,服务端通常对外表现的是集群整体能力值,例如,当前的QPS大于集群整体能力值m时,确定当前所处的状态是高压限流状态,如果机器服务器总数是n,则上述的第二阈值对应的单台限流阈值是m/n,另外,可以对应不同的服务器设置不同的预设系数,从而用m/n乘以相应的预设系数,得到每台服务器对应的第二阈值。类似的,第一阈值也可以根据相应的单台限流阈值和预设系数确定。
本实施例中,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。进一步的,通过客户端根据服务端发送的第一限流通知或第二限流通知和预设的限流策略进行流量控制,可以实现客户端与服务端联动,兼顾用户体验和***安全,实现***柔性可用。进一步的,通过单台服务器的执行,可以提高反应速度。
一些实施例中,流量控制可以分为全局控制模式和分业务控制模式,相应的,上述的网络流量值可以包括:全局网络流量值和/或分业务的网络流量值。
当所述网络流量值包括:全局网络流量值和分业务的网络流量值,且所述网络流量值是QPS时,参见图5,确定模块42包括:第一单元421和第二单元422,发送模块43包括:第三单元431和第四单元432,另外,还可以包括:处理模块44。
第一单元421,用于接收到客户端发送的网络请求后,统计得到全局QPS,以及,获取全局流量控制的多个阈值;以及,比较全局QPS与全局流量控制的多个阈值;
第三单元431,用于如果全局QPS大于全局流量控制的多个阈值中的最小阈值,则向客户端发送全局限流通知;
其中,全局限流通知可以具体是全局高压限流通知或全局低压限流通知。
第二单元422,用于如果全局QPS小于全局流量控制的多个阈值中的最小阈值,则确定所述网络请求属于的业务,并统计得到所述业务对应的分业务QPS,以及,获取所述业务对应的分业务流量控制的多个阈值;以及,比较所述分业务QPS与所述分业务流量控制的多个阈值;
第四单元432,用于如果分业务QPS大于分业务流量控制的多个阈值中的最小阈值,则向客户端发送分业务限流通知;
其中,分业务限流通知可以具体是分业务高压限流通知或分业务低压限流通知。
处理模块44,用于如果分业务QPS小于分业务流量控制的多个阈值中的最小阈值,则正常处理所述网络请求。
具体内容可以参见方法实施例中的相应描述,在此不再赘述。
本实施例中,在低压限流时,客户端可以以较低的频率继续发送网络请求,不影响核心功能的使用,提升限流状态下的用户体验。当服务端流量触发高压限流时,客户端在有效时间内停止向服务端发送网络请求,以减轻服务端的压力,保证***安全。
图6是本申请另一实施例提出的流量控制装置的结构示意图,该装置60包括:接收模块61和控制模块62。
接收模块61,用于接收服务端发送的限流通知,所述限流通知是服务端比较当前的网络流量值与预设的多个阈值后得到的;
其中,当当前的网络流量值大于第一阈值并小于第二阈值时,所述限流通知是包括网络请求的调整后的发送时间间隔和第一有效时间的第一限流通知,当当前的网络流量值大于第二阈值时,所述限流通知是包括第二有效时间的第二限流通知;其中,第一阈值小于第二阈值。
控制模块62,用于根据所述限流通知进行流量控制;
其中,当所述限流通知是第一限流通知时,在所述第一有效时间内,根据所述发送时间间隔发送网络请求,当所述限流通知是第二限流通知时,在所述第二有效时间内停止发送网络请求。
其中,如果有效时间内收到同类的限流通知,则用最新收到的限流通知更新原有的限流通知,根据最新收到的限流通知进行流量控制。
一些实施例中,所述限流通知包括:全局限流通知,和/或,分业务限流通知。
一些实施例中,控制模块62具体用于:
获取待发送的网络请求;
如果所述待发送的网络请求匹配到的限流通知包括:全局限流通知和分业务限流通知,根据所述全局限流通知和所述分业务限流通知,分别确定下一次发送时间,得到两个下一次发送时间;
在两个下一次发送时间中的最大值对应的时间,向服务端发送所述待发送的网络请求。
例如,客户端接收到全局限流通知和分业务限流通知后,分别进行保存,并计算相应的下一次的发送时间。
例如:当前时间为t_now,客户端本地有两条规则:
(a)全局规则:发包最小延迟100ms,有效时间未结束,上一次发送时间为t1,则下一次发送时间为r1=max(t1+100ms,t_now);
(b)分业务规则(当前待发请求属于该业务):发包最小延迟200ms,有效时间未结束,上一次发送时间为t2,则下一次发送时间为r2=max(t2+200ms,t_now);
如果待发送的网络请求只匹配全局规则,那么最终可发送时间点为r1;如果同时匹配全局和分业务两条规则,那么最终的可发送时间点为max(r1,r2)。
本实施例中,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
图7是本申请另一实施例提出的流量控制***的结构示意图,该***70包括:客户端装置71和服务端装置72。
其中,客户端装置71可以如图4或图5所示,服务端装置72可以如图6所示。
本实施例中,通过设置多个阈值,可以实现分级流量控制,从而解决单一阈值存在的一些问题。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (11)

1.一种流量控制方法,其特征在于,包括:
检测当前的网络流量值;
比较当前的网络流量值与预设的多个阈值;
当当前的网络流量值大于第一阈值并小于第二阈值时,向发起网络请求的客户端返回第一限流通知;当当前的网络流量值大于第二阈值时,向发起网络请求的客户端返回第二限流通知;其中,第一阈值小于第二阈值;
所述第一限流通知中包括网络请求的调整后的发送时间间隔和第一有效时间,以使所述客户端在所述第一有效时间内,根据所述发送时间间隔发送网络请求;所述第二限流通知中包括:第二有效时间,以使所述客户端在所述第二有效时间内停止发送网络请求。
2.根据权利要求1所述的方法,其特征在于,所述网络流量值包括:
全局网络流量值;和/或,
分业务的网络流量值。
3.根据权利要求2所述的方法,其特征在于,当所述网络流量值包括:全局网络流量值和分业务的网络流量值,且所述网络流量值是QPS时,所述检测当前的网络流量值;比较当前的网络流量值与预设的多个阈值,包括:
接收到客户端发送的网络请求后,统计得到全局QPS,以及,获取全局流量控制的多个阈值;
当全局QPS小于全局流量控制的多个阈值中的最小阈值时,确定所述网络请求属于的业务,并统计得到所述业务对应的分业务QPS,以及,获取所述业务对应的分业务流量控制的多个阈值;
比较所述分业务QPS与所述分业务流量控制的多个阈值;
所述方法还包括:
当所述分业务QPS小于分业务流量控制的多个阈值中的最小阈值时,
正常处理所述网络请求。
4.根据权利要求2所述的方法,其特征在于,当所述网络流量值包括全局网络流量值和分业务的网络流量值时,所述第一限流通知和所述第二限流通知中还包括:用于区分全局限流通知和分业务限流通知的状态码。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述阈值是根据单台限流阈值以及预设系数确定的,所述单台限流阈值是根据集群整体能力值与集群服务器总数确定的。
6.一种流量控制方法,其特征在于,包括:
接收服务端发送的限流通知,所述限流通知是服务端比较当前的网络流量值与预设的多个阈值后得到的;
其中,当当前的网络流量值大于第一阈值并小于第二阈值时,所述限流通知是包括网络请求的调整后的发送时间间隔和第一有效时间的第一限流通知,当当前的网络流量值大于第二阈值时,所述限流通知是包括第二有效时间的第二限流通知;其中,第一阈值小于第二阈值;
根据所述限流通知进行流量控制;
其中,当所述限流通知是第一限流通知时,在所述第一有效时间内,根据所述发送时间间隔发送网络请求,当所述限流通知是第二限流通知时,在所述第二有效时间内停止发送网络请求。
7.根据权利要求6所述的方法,其特征在于,所述限流通知包括:全局限流通知,和/或,分业务限流通知。
8.根据权利要求7所述的方法,其特征在于,所述根据所述限流通知进行流量控制,包括:
获取待发送的网络请求;
如果所述待发送的网络请求匹配到的限流通知包括:全局限流通知和分业务限流通知,根据所述全局限流通知和所述分业务限流通知,分别确定下一次发送时间,得到两个下一次发送时间;
在两个下一次发送时间中的最大值对应的时间,向服务端发送所述待发送的网络请求。
9.一种流量控制装置,其特征在于,包括:
检测模块,用于检测当前的网络流量值;
确定模块,用于比较当前的网络流量值与预设的多个阈值;
发送模块,用于当当前的网络流量值大于第一阈值并小于第二阈值时,向发起网络请求的客户端返回第一限流通知;当当前的网络流量值大于第二阈值时,向发起网络请求的客户端返回第二限流通知;其中,第一阈值小于第二阈值;
所述第一限流通知中包括网络请求的调整后的发送时间间隔和第一有效时间,以使所述客户端在所述第一有效时间内,根据所述发送时间间隔发送网络请求;所述第二限流通知中包括:第二有效时间,以使所述客户端在所述第二有效时间内停止发送网络请求。
10.一种流量控制装置,其特征在于,包括:
接收模块,用于接收服务端发送的限流通知,所述限流通知是服务端比较当前的网络流量值与预设的多个阈值后得到的;其中,当当前的网络流量值大于第一阈值并小于第二阈值时,所述限流通知是包括网络请求的调整后的发送时间间隔和第一有效时间的第一限流通知,当当前的网络流量值大于第二阈值时,所述限流通知是包括第二有效时间的第二限流通知;其中,第一阈值小于第二阈值;
控制模块,用于根据所述限流通知进行流量控制;其中,当所述限流通知是第一限流通知时,在所述第一有效时间内,根据所述发送时间间隔发送网络请求,当所述限流通知是第二限流通知时,在所述第二有效时间内停止发送网络请求。
11.一种流量控制***,其特征在于,包括:
如权利要求9所述的装置,以及,
如权利要求10所述的装置。
CN201510689426.7A 2015-10-21 2015-10-21 流量控制方法、装置和*** Active CN106612238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510689426.7A CN106612238B (zh) 2015-10-21 2015-10-21 流量控制方法、装置和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510689426.7A CN106612238B (zh) 2015-10-21 2015-10-21 流量控制方法、装置和***

Publications (2)

Publication Number Publication Date
CN106612238A true CN106612238A (zh) 2017-05-03
CN106612238B CN106612238B (zh) 2020-11-27

Family

ID=58610269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510689426.7A Active CN106612238B (zh) 2015-10-21 2015-10-21 流量控制方法、装置和***

Country Status (1)

Country Link
CN (1) CN106612238B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107086932A (zh) * 2017-05-22 2017-08-22 安徽电信规划设计有限责任公司 一种云平台虚拟化流量安全监控***
CN108173938A (zh) * 2017-12-28 2018-06-15 泰康保险集团股份有限公司 服务器负载分流方法及装置
CN108573013A (zh) * 2017-12-08 2018-09-25 北京金山云网络技术有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN108683605A (zh) * 2018-06-12 2018-10-19 阿里巴巴集团控股有限公司 一种服务调用的限流方法和装置
CN108848037A (zh) * 2018-05-31 2018-11-20 平安医疗科技有限公司 业务请求处理方法、装置、计算机设备和存储介质
CN109284229A (zh) * 2018-10-17 2019-01-29 武汉斗鱼网络科技有限公司 一种基于qps的动态调整方法以及相关设备
CN109921962A (zh) * 2019-04-16 2019-06-21 腾讯科技(深圳)有限公司 带宽测量方法、装置、计算机可读存储介质和计算机设备
WO2019174509A1 (zh) * 2018-03-15 2019-09-19 阿里巴巴集团控股有限公司 速率控制方法、装置及电子设备
CN110659898A (zh) * 2018-06-28 2020-01-07 腾讯科技(深圳)有限公司 一种数据控制方法、装置及存储介质
CN110933241A (zh) * 2018-09-19 2020-03-27 中移信息技术有限公司 一种发送在线计费请求的方法、装置、设备及介质
CN111555987A (zh) * 2020-04-28 2020-08-18 深圳前海微众银行股份有限公司 限流配置方法、装置、设备及计算机存储介质
CN113472492A (zh) * 2020-03-30 2021-10-01 维沃移动通信有限公司 流控消息的传输方法和设备
CN113923163A (zh) * 2021-10-20 2022-01-11 广东亿迅科技有限公司 一种基于长连接消息通道限流方法及***
US11425051B2 (en) 2017-05-31 2022-08-23 Huawei Technologies Co., Ltd. Flow control method and system, and device
CN115865820A (zh) * 2022-11-23 2023-03-28 四川天邑康和通信股份有限公司 一种基于光猫流量监控的闹钟提醒***及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (zh) * 2006-02-28 2007-09-05 华为技术有限公司 全球微波接入互操作性网络数据流量控制方法
CN101286937A (zh) * 2008-05-16 2008-10-15 华为技术有限公司 一种网络流量控制方法、装置及***
US20110158248A1 (en) * 2009-12-24 2011-06-30 Juniper Networks, Inc. Dynamic prioritized fair share scheduling scheme in over-subscribed port scenario
US20110264516A1 (en) * 2010-04-27 2011-10-27 Yahoo! Inc. Limiting latency due to excessive demand in ad exchange
CN103905327A (zh) * 2012-12-25 2014-07-02 中国科学院声学研究所 一种基于流状态信息的内容中心网络拥塞控制方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (zh) * 2006-02-28 2007-09-05 华为技术有限公司 全球微波接入互操作性网络数据流量控制方法
CN101286937A (zh) * 2008-05-16 2008-10-15 华为技术有限公司 一种网络流量控制方法、装置及***
US20110158248A1 (en) * 2009-12-24 2011-06-30 Juniper Networks, Inc. Dynamic prioritized fair share scheduling scheme in over-subscribed port scenario
US20110264516A1 (en) * 2010-04-27 2011-10-27 Yahoo! Inc. Limiting latency due to excessive demand in ad exchange
CN103905327A (zh) * 2012-12-25 2014-07-02 中国科学院声学研究所 一种基于流状态信息的内容中心网络拥塞控制方法及***

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107086932A (zh) * 2017-05-22 2017-08-22 安徽电信规划设计有限责任公司 一种云平台虚拟化流量安全监控***
US11425051B2 (en) 2017-05-31 2022-08-23 Huawei Technologies Co., Ltd. Flow control method and system, and device
CN108573013A (zh) * 2017-12-08 2018-09-25 北京金山云网络技术有限公司 请求处理方法、装置、电子设备及计算机可读存储介质
CN108173938A (zh) * 2017-12-28 2018-06-15 泰康保险集团股份有限公司 服务器负载分流方法及装置
CN108173938B (zh) * 2017-12-28 2021-01-29 泰康保险集团股份有限公司 服务器负载分流方法及装置
WO2019174509A1 (zh) * 2018-03-15 2019-09-19 阿里巴巴集团控股有限公司 速率控制方法、装置及电子设备
CN108848037B (zh) * 2018-05-31 2023-06-20 平安医疗科技有限公司 业务请求处理方法、装置、计算机设备和存储介质
CN108848037A (zh) * 2018-05-31 2018-11-20 平安医疗科技有限公司 业务请求处理方法、装置、计算机设备和存储介质
CN108683605A (zh) * 2018-06-12 2018-10-19 阿里巴巴集团控股有限公司 一种服务调用的限流方法和装置
CN108683605B (zh) * 2018-06-12 2021-08-24 创新先进技术有限公司 一种服务调用的限流方法和装置
CN110659898A (zh) * 2018-06-28 2020-01-07 腾讯科技(深圳)有限公司 一种数据控制方法、装置及存储介质
CN110933241A (zh) * 2018-09-19 2020-03-27 中移信息技术有限公司 一种发送在线计费请求的方法、装置、设备及介质
CN110933241B (zh) * 2018-09-19 2021-03-23 中移信息技术有限公司 一种发送在线计费请求的方法、装置、设备及介质
CN109284229B (zh) * 2018-10-17 2022-02-22 武汉斗鱼网络科技有限公司 一种基于qps的动态调整方法以及相关设备
CN109284229A (zh) * 2018-10-17 2019-01-29 武汉斗鱼网络科技有限公司 一种基于qps的动态调整方法以及相关设备
CN109921962B (zh) * 2019-04-16 2021-03-23 腾讯科技(深圳)有限公司 带宽测量方法、装置、计算机可读存储介质和计算机设备
CN109921962A (zh) * 2019-04-16 2019-06-21 腾讯科技(深圳)有限公司 带宽测量方法、装置、计算机可读存储介质和计算机设备
CN113472492A (zh) * 2020-03-30 2021-10-01 维沃移动通信有限公司 流控消息的传输方法和设备
CN113472492B (zh) * 2020-03-30 2023-04-07 维沃移动通信有限公司 流控消息的传输方法和设备
CN111555987A (zh) * 2020-04-28 2020-08-18 深圳前海微众银行股份有限公司 限流配置方法、装置、设备及计算机存储介质
CN113923163A (zh) * 2021-10-20 2022-01-11 广东亿迅科技有限公司 一种基于长连接消息通道限流方法及***
CN115865820A (zh) * 2022-11-23 2023-03-28 四川天邑康和通信股份有限公司 一种基于光猫流量监控的闹钟提醒***及方法
CN115865820B (zh) * 2022-11-23 2024-05-28 四川天邑康和通信股份有限公司 一种基于光猫流量监控的闹钟提醒***及方法

Also Published As

Publication number Publication date
CN106612238B (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
CN106612238A (zh) 流量控制方法、装置和***
CN105577530B (zh) 一种群聊信息概览方法及装置
CN106155780A (zh) 一种基于时间的节点选举方法及装置
CN108633106A (zh) 一种随机接入回退后的随机接入及指示方法、装置
CN106130972B (zh) 资源访问控制方法和装置
CN107819797B (zh) 访问请求处理方法和装置
CN108650667A (zh) 终端调度方法和装置
CN110011926B (zh) 一种调整报文发送时间的方法、装置、设备及存储介质
CN103929372A (zh) 主动队列管理方法和设备
CN110087141A (zh) 视频数据传输方法、装置、客户端及服务器
CN110831039A (zh) 多路并发***中的数据传输方法及传输服务器
CN109245959A (zh) 统计活跃流数目的方法、网络设备和***
CN105898882A (zh) 一种数据传输方法、发送终端、接收终端及数据传输***
CN108683528A (zh) 一种数据传输方法、中心服务器、服务器及数据传输***
CN107147562A (zh) 消息处理方法和装置
US20100277292A1 (en) Method for automatic standby response to reduce pilot workload
CN108712494A (zh) 处理异步消息的方法、装置及设备
CN110191022A (zh) 一种业务质量检测方法及装置
CN102056095B (zh) 短信传输流量的控制方法、***及设备
CN106169979A (zh) 一种业务处理方法和设备
CN106790729B (zh) 与客户端进行通信的装置和方法
CN102685130A (zh) 一种云会议的调度控制方法及***
CN106126640B (zh) 内容数据推送方法及装置
CN108702335B (zh) 用于在多媒体***中发送和接收数据包的方法和设备
CN107743077A (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