CN107645456A - 流量控制方法和流量控制系统 - Google Patents
流量控制方法和流量控制系统 Download PDFInfo
- Publication number
- CN107645456A CN107645456A CN201610577202.1A CN201610577202A CN107645456A CN 107645456 A CN107645456 A CN 107645456A CN 201610577202 A CN201610577202 A CN 201610577202A CN 107645456 A CN107645456 A CN 107645456A
- Authority
- CN
- China
- Prior art keywords
- threshold values
- request
- beyond
- time period
- time
- 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
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开一种流量控制方法和流量控制系统,包括:接收第一时间段内的物流数据处理的请求;判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出等待阀值;当超出所述第一阀值的请求的数目未超出所述等待阀值时,将所述超出所述第一阀值且未超出等待阀值的请求加入等待队列;当超出所述第一阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。本申请实施例通过设置等待队列,实现了容纳更高的瞬时流量,避免了现有技术将超出热点队列限流值的请求直接拒绝的缺陷。
Description
技术领域
本申请涉及互联网领域,尤其涉及一种流量控制方法和流量控制系统。
背景技术
在互联网业务中,电商系统的稳定性和响应的及时性是决定用户体验好坏的重要因素。而在特定的时间,例如“双十一”期间,大量的用户可能同时向服务器提交请求,导致峰值大流量的产生。峰值大流量对业务系统直接冲击会造成系统瞬时瘫痪、数据库连接数耗空、应用容器处理缓慢甚至进程死掉等问题,对系统的稳定性和性能造成极大的挑战。
现有技术中,通常使用单机流量控制的方法对流量进行控制。单机流量控制的主要思想在于为每一台客户端限定一个流量的最大值。此处的流量可以为每秒请求量(qps,query per second),也可以是其他单位时间刻度内的请求数。超过这一最大值的客户端发出的请求会被拒绝,即服务器会返回请求失败的信息至客户端。
现有的单机流量控制方法至少存在如下问题:瞬时和长时间大流量可能造成系统瘫痪,导致稳定性降低;软负载不均导致集群中个别机器的流量超出上述最大值而误杀;低阀值、大集群无法有效进行流量控制;不具有容错机制等。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的流量控制方法和流量控制系统。
为解决上述问题,本申请一实施例公开一种流量控制方法,包括:
接收第一时间段内的物流数据处理的请求;
判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;
当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出第一等待阀值;
当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将所述超出所述第一阀值且未超出第一等待阀值的请求加入等待队列;
当超出所述第一阀值的请求的数目超出所述第一等待阀值时,拒绝所述超出第一等待阀值的请求。
为解决上述问题,本申请另一实施例公开一种流量控制方法,包括:
接收第二时间段内的物流数据处理请求;
判断所述第二时间段内的接收的请求数目与等待队列中的请求数目的总和是否超出该第二时间段所能执行的第二阀值;
当判断所述总和超出该第二阀值时,判断超出第二阀值的请求的数目是否超出第二等待阀值;
当所述超出第二阀值的请求的数目未超出所述等待阀值时,将所述超出所述第二阀值且未超出等待阀值的请求加入等待队列;
当所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
为解决上述问题,本申请再一实施例提出一种流量控制方系统,包括:
第一接收模块,用于接收第一时间段内的物流数据处理的请求;
第一判断模块,用于判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;
第二判断模块,用于当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出第一等待阀值;
第一发送模块,用于当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将所述超出所述第一阀值且未超出第一等待阀值的请求加入等待队列;
第一请求拒绝模块,用于当超出所述第一阀值的请求的数目超出所述第一等待阀值时,拒绝所述超出第一等待阀值的请求。
为解决上述问题,本申请又一实施例提出一种流量控制方系统,包括:
第三接收模块,用于接收第二时间段内的物流数据处理请求;
第五判断模块,用于判断所述第二时间段内的接收的请求数目与等待队列中的请求数目的总和是否超出该第二时间段所能执行的第二阀值;
第六判断模块,用于当判断所述总和超出该第二阀值时,判断超出第二阀值的请求的数目是否超出第二等待阀值;
第三发送模块,用于当所述超出第二阀值的请求的数目未超出所述等待阀值时,将所述超出所述第二阀值且未超出等待阀值的请求加入等待队列;
第三请求拒绝模块,用于当所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
相比于现有技术,本申请实施例提出的流量控制方法和系统至少具有以下优点:
本申请实施例通过设置等待队列,实现了容纳更高的瞬时流量,针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量。此外,本申请实施例中,将第一时间段内无法处理完的请求进行阻塞,延迟至第一时间段之后的第二时间段内执行,通过适当增大响应时间减少了单位时间内请求的频率,提高响应请求的成功率,减少了无谓的失败请求。
附图说明
图1所示为本申请第一实施例的流量控制方法的流程图。
图2所示为本申请第二实施例的流量控制方法的流程图。
图3所示为本申请第四实施例的流量控制方法的流程图。
图4所示为本申请第五实施例的流量控制方法的流程图。
图5所示为本申请实施例的流量控制系统的方框图。
图6所示为本申请实施例的流量控制系统的方框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的核心思想之一在于提出一种流量控制方法和流量控制系统,将超出当前的前一时间段的执行能力的部分请求发送至等待队列,而非直接拒绝,从而通过提供缓存和延迟响应的方式提高响应请求的成功率,减少了失败请求。以下通过多个实施例具体进行说明。
第一实施例
图1所示为本申请第一实施例的流量控制方法的流程图。如图1所示,本申请第一实施例提出一种流量控制方法,该方法包括如下步骤:
S101,接收第一时间段内的物流数据处理的请求;
在这一步骤中,第一时间段例如为第一秒钟。服务端(例如服务器)能够通过RPC调用等方式获取多个客户端在第一时间段内产生的多个物流数据处理的请求。举例来说,当客户端发出了一个物流数据处理的请求(例如客户在某电子商务平台上针对某一商品下单),该请求进入对应的服务接口(该服务接口可以是客户端从该商品的链接进入并发起的请求所对应的接口),服务器可以通过调用该服务接口的请求获取第一时间段内多个客户端针对该商品的多个请求。值得说明的是,每个请求均携带有发出的时间,这些请求可以按照时间先后顺序排序并被服务器接收。
S102,判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;
在这一步骤中,服务器可以通过流量计数判断第一时间段内获得的请求的数目是否超出当前的第一时间段能执行的第一阀值。举例来说,第一时间段所能执行的请求的最大数目为100个,在第一时间段的第10毫秒时累计的请求数10个,在第20毫秒时累计的请求数为40个,服务器在接收请求的过程中持续对获取的请求计数,当判断请求的数目未超出该服务器在第一时间段对应的第一阀值时,这些请求可以在第一时间段中执行。
值得说明的是,在一些实施例中服务器同时执行计数和处理请求的任务,在另一些实施例中,可以由不同的服务器分别执行计数和处理请求的任务,甚至可以由不同的服务器分别处理不同的时间段内请求。即,本申请实施例中所述的服务器可以为不同的应用服务器,并非限制为同一执行主体。
另外,第一时间段内所能执行的第一阀值的大小可以通过执行该时间段的服务器或者其他执行主体的处理能力确定,或者是人为设定,在此并不特别限制。
S103,当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出第一等待阀值;
在这一步骤中,举例来说,在服务器在第一时间段内接收到的请求的数目超出100个后,本申请的流量控制系统会持续从服务接口调用请求,当判断出请求的数目超出第一阀值后,系统继续计数,判断超出所述第一阀值的请求的数目是否超出第一等待阀值,第一等待阀值例如为50个。
值得说明的是,第一等待阀值可以是通过预设条件例如系统的处理能力计算出的阀值,或者是通过人为设定获得,在此并不特别限制。
S104,当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将所述超出所述第一阀值且未超出第一等待阀值的请求加入等待队列;
在这一步骤中,当系统判断出超出第一阀值的请求的数目未超出第一等待阀值时,可以将超出上述第一阀值但未超出第一等待阀值的请求发送至等待队列;例如第一等待阀值为50个,从服务器接口获取的、按照时间排列的第101-150个请求被发送至等待队列。
可选地,该实施例还可以包括:
S105,当超出所述第一阀值的请求的数目超出所述第一等待阀值时,拒绝所述超出第一等待阀值的请求。
在这一步骤中,当从服务器接口获取的、超出所述第一阀值的请求的数目超出第一等待阀值时,系统将直接对产生这些请求的客户端返回请求失败的信息。例如,在第一时间段内从服务器接口获取的、按照时间排列的第151 个及之后的请求均被拒绝,系统将返回请求失败的信息至相应的客户端。
可选地,步骤S104之后,即将所述超出所述第一阀值且未超出第一等待阀值的请求加入等待队列之后,所述方法还可以包括:
S106,在第一时间段之后的第二时间段内执行所述等待队列中的请求;
这一步骤可以包括如下两个子步骤:
S106a,将所述超出第一阀值且未超出第一等待阀值的请求阻塞第一阻塞时间;
S106b,在第一阻塞时间结束之后,在第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;其中,所述第一阻塞时间为所述超出第一阀值且未超出等待阀值的请求进入所述第二时间段所需要的时间。
在上述两个子步骤中,举例来说,在第一时间段的第300毫秒时系统判断出等待队列中的请求的数目达到上限,即达到第一等待阀值,此时距离第二时间段的到来还有700ms,则可以将该等待队列中的请求阻塞700ms以等待进入第二时间段,使这些请求能够在第二时间段内执行。因此,可以确定上述的第一阻塞时间为700ms。即,所述第一阻塞时间为所述等待队列中的请求进入所述第二时间段所需要的时间。由于计算第一阻塞时间的方式有多种并且属于已有的技术,在此并不赘述。
在本申请的第一实施例提出的流量控制方法中,在第一时间段设置等待队列,将超出第一阀值的部分请求加入等待队列,而非直接拒绝,使得系统能够容纳更高的瞬时流量,针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量。
第二实施例
图2所示为本申请第二实施例的流量控制方法的流程图。如图2所示,本申请第二实施例提出一种流量控制方法,该方法包括如下步骤:
S201,接收第一时间段内的物流数据处理的请求;
S202,判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;
S203,当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出等待阀值;
S204,当超出所述第一阀值的请求的数目未超出所述等待阀值时,将所述超出所述第一阀值且未超出等待阀值的请求加入等待队列;
可选地,该实施例还可以包括:
S205,当超出所述第一阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
可选地,该实施例中,步骤S204之后还可以包括如下步骤:
S206,在第一时间段之后的第二时间段内执行所述等待队列中的请求;
上述步骤可以与步骤S101至步骤S106相同或相似,在此不再赘述。
可选地,该实施例还可以包括如下步骤:
S207,接收第二时间段内的物流数据处理的请求;
在这一步骤中,第二时间段为第一时间段之后的时间段,例如为第二秒钟。服务端同样可以通过RPC调用等方式获取第二时间段内的物流数据处理请求,在此不再赘述。
S208,判断所述等待队列中的请求的数目与第二时间段内接收的请求的数目的总和是否超出该第二时间段所能执行的第二阀值;
在这一步骤中,服务器可以通过流量计数判断等待队列中的请求的数目加上第二时间段内获得的请求的数目是否超出当前的第二时间段能执行的第二阀值。举例来说,第二时间段所能执行的请求的最大数目也为100个,等待队列中已有的请求数为50个,在第二时间段的第100毫秒时累计的请求数10个,在第200毫秒时累计的请求数为40个,服务器在接收请求的过程中持续对获取的请求计数,并判断请求数目的总和是否超出第二阀值。
值得说明的是,第二时间段内所能执行的第二阀值的大小也可以通过执行该时间段的服务器或者其他执行主体的处理能力确定,或者是人为设定,第二阀值可以与上述的第一阀值相等,也可以不等,在此并不特别限制。
S209,当判断所述总和未超出所述第二阀值时,在所述第二时间段内执行所述第二时间段内接收的请求;
在这一步骤中,当判断请求的数目的总和未超出第二阀值(例如上述的100个)时,除了等待队列中的请求可以在该第二时间段内执行以外,第二时间段内收到的、与等待队列中的请求的总和未超出第二阀值的请求也可以在第二时间段内执行。优选地,可以先执行等待队列中的请求,再执行第二时间段内收到的、与等待队列中的请求的总和未超出第二阀值的请求。
S210,当判断所述总和超出所述第二阀值时,判断超出所述第二阀值的请求的数目是否超出第二等待阀值;
在这一步骤中,当判断请求的数目的总和超出第二阀值,系统进一步判断在第二时间段内获取的超出第二阀值的请求的数目是否超出第二等待阀值。举例来说,第二等待阀值也为50个,当第二时间段内接收到第51个请求时,系统判断等待队列中的请求数目(50个)与第二时间段内接收到的请求的数目(51个)的总和超出了第二阀值(100个),此时系统对第二时间段接收到的请求继续计数,判断超出第二阀值的请求的数目是否超出了第二时间段对应的第二等待阀值。
值得说明的是,第二等待阀值也可以是通过预设条件例如系统的处理能力计算出的阀值,或者是通过人为设定获得,在此并不特别限制。
S211,当判断出所述超出第二阀值的请求的数目未超出所述第二等待阀值时,将所述超出第二阀值且未超出所述第二等待阀值的请求加入等待队列;
在这一步骤中,当判断出步骤S210中的请求数总和没有超出第二等待阀值时,将超出第二阀值且未超出第二等待阀值的请求加入等待队列。等待队列中的请求可以顺延至第二时间段之后的第三时间段内执行。例如,在第二时间段内从服务器接口获取的、按照时间排列的第51-100个请求可以被加入等待队列,这些请求可以顺延至后续的第三时间段内执行。
S212,当判断出所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出第二阀值且超出所述等待阀值的请求。
在这一步骤中,当判断出步骤S210中的请求数总和超出第二等待阀值后,系统将直接对产生这些请求的客户端返回请求失败的信息。例如,在第二时间段内从服务器接口获取的、按照时间排列的第101个及之后的请求均被拒绝,系统将返回请求失败的信息至相应的客户端。
在本申请的第二实施例提出的流量控制方法中,通过在第二时间段设置等待队列,将超出第一阀值的部分请求后延至第二时间段执行,并将超出第二阀值的部分请求加入等待队列,后延至之后的时间段执行,使得系统能够容纳更高的瞬时流量,针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量。
第三实施例
本申请第三实施例提出一种流量控制方法,在第一实施例的步骤S101至S106的基础上,或者在第二实施例的步骤S201至S206的基础上,所述方法还可以包括如下步骤:
S313,计算流量;以及
S314,判断所述流量是否达到所述流量预警阀值。
在上述步骤中,流量是指单位时间内的请求数,可以通过特定时间段内的请求数除以该时间段的时长,计算出该时间段的流量。步骤S313即计算流量的步骤例如可以包括如下两种方式:
S313a,根据当前时间段内的请求的数目计算流量;或者
S313b,根据前N个时间段的请求的数目计算流量;其中N为大于2的自然数。
上述的S313a和S313b分别为计算流量的两种可能的情形。第一种情形为根据当前时间段内的请求数计算流量,在这一种情形下,可以仅根据当前时间段内的请求数确定当前流量,当前时间段可以为正在处理任务的时间段,例如第一时间段或第二时间段。举例来说,第二时间段(1s)的前100ms接收到的流量为100个,则计算出的流量为100/0.1s=1000,则当前的第二时间段的平均流量为1000。第二种情形为根据前N个时间段的请求数计算流量;在这一种情形下,可以利用前N个时间段的请求数计算出请求走势,确定待监控的流量。前N个时间段可以理解为,如当前执行的是第10个时间段的请求,前N个时间段即为第1-9个时间段。此外,举例来说前N个时间段的请求数在随着时间每次递增10%,则可以预测待监控的流量会基于最近一次的时间段(第一时间段)的请求数递增10%。按照这一趋势,可以预测流量。然而,正如本领域技术人员能够得知的,计算流量可以有多种方式,本申请并不以此为限。
可选地,所述方法还可以包括如下步骤:
S315,当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零;其中,所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间;
在这一步骤中,当确定流量达到流量预警阀值时,可以对当前执行的线程进行再增加阻塞时间,延长其响应时间。剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间。为了避免响应时间过长导致客户端请求超时,可阻塞总时间通常设置为用户的客户端判断出请求超时的最短时间,即从用户的客户端发出请求,到用户的客户端因为未收到响应而自动判断请求超时的最短时间,因此此处的剩余可阻塞时间包括可阻塞总时间减去上述的第一阻塞时间。客户端请求超时的最短时间例如为1s,假设在步骤S106a中的第一阻塞时间为700ms,则本步骤中的可阻塞时间为300ms。
S316,当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
在这一步骤中,当判断出剩余可阻塞时间大于零时,根据剩余可阻塞时间,将当前超出流量预警阀值的请求阻塞特定的时间。这一特定的时间可以小于等于上述的剩余可阻塞时间。
由上述可知,本申请第三实施例提出的流量控制方法中,通过设置等待队列,实现了容纳更高的瞬时流量,因此针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量;同时将第一时间段内无法处理完的请求进行阻塞,延迟至第一时间段之后的第二时间段内执行,通过适当增大响应时间减少了单位时间内请求的频率,提高响应请求的成功率,减少了无谓的失败请求。
另外,根据本申请第三实施例提出的流量控制方法,可以使用自动流量控制分析来对单机或者集群中的流量进行自动分析和控制,可以敏锐捕捉最近一段时间的流量趋势,计算可阻塞时间,在不影响客户体验的同时适当提高请求线程的响应时间,减小单位时间内的流量来做到自动干预请求频度,增强系统的容错能力、减小失败率。
第四实施例
图3所示为本申请第四实施例的流量控制方法的流程图。如图3所示,本申请第二实施例提出一种流量控制方法,该方法包括如下步骤:
S401,接收第二时间段内的物流数据处理请求;
在这一步骤中,例如,在第二秒钟内,服务端可以通过RPC调用等方式获取第一时间段(第一秒钟)之后的第二时间段内的物流数据处理请求。这一步骤可以与步骤S207相同或相似,在此不再赘述。
S402,判断所述第二时间段内的接收的请求数目与等待队列中的请求数目的总和是否超出该第二时间段所能执行的第二阀值;
在这一步骤中,等待队列中的请求是指在在第一时间段内接收到的部分请求,系统判断这一部分请求在第一时间段内无法执行完毕,故将这一部分请求加入等待队列,延后至第二时间段执行。值得注意的是由于等待队列具有上限,当等待队列已满,后续第一时间段内接收的请求便无法再加入等待队列,因此并非第一时间段内无法执行完毕的请求均会加入等待队列,相反地,只有部分在第一时间段内无法执行完毕的请求会加入等待队列中。
在这一步骤中,服务器可以通过流量计数判断等待队列中的请求的数目加上第二时间段内获得的请求的数目是否超出当前的第二时间段能执行的第二阀值。举例来说,第二时间段所能执行的请求的最大数目也为100个,等待队列中已有的请求数为50个,在第二时间段的第100毫秒时累计的请求数10个,在第200毫秒时累计的请求数为40个,服务器在接收请求的过程中持续对获取的请求计数,并判断请求数目的总和是否超出第二阀值。
值得说明的是,第二时间段内所能执行的第二阀值的大小也可以通过执行该时间段的服务器或者其他执行主体的处理能力确定,或者是人为设定,第二阀值可以与上述的第一阀值相等,也可以不等,在此并不特别限制。
S403,当判断所述总和超出该第二阀值时,判断超出第二阀值的请求的数目是否超出第二等待阀值;
在这一步骤中,在这一步骤中,当判断请求的数目的总和超出第二阀值,系统进一步判断在第二时间段内获取的超出第二阀值的请求的数目是否超出第二等待阀值。举例来说,第二等待阀值也为50个,当第二时间段内接收到第51个请求时,系统判断等待队列中的请求数目(50个)与第二时间段内接收到的请求的数目(51个)的总和超出了第二阀值(100个),此时系统对第二时间段接收到的请求继续计数,判断超出第二阀值的请求的数目是否超出了第二时间段对应的第二等待阀值。
值得说明的是,第二等待阀值也可以是通过预设条件例如系统的处理能力计算出的阀值,或者是通过人为设定获得,在此并不特别限制。
S404,当所述超出第二阀值的请求的数目未超出所述等待阀值时,将所述超出所述第二阀值且未超出等待阀值的请求加入等待队列;
在这一步骤中,当判断出步骤S210中的请求数总和没有超出第二等待阀值时,将超出第二阀值且未超出第二等待阀值的请求加入等待队列。等待队列中的请求可以顺延至第二时间段之后的第三时间段内执行。例如,在第二时间段内从服务器接口获取的、按照时间排列的第51-100个请求可以被加入等待队列,这些请求可以顺延至后续的第三时间段内执行。
S405,当所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
在这一步骤中,当判断出步骤S403中的请求数总和超出第二等待阀值后,系统将直接对产生这些请求的客户端返回请求失败的信息。例如,在第二时间段内从服务器接口获取的、按照时间排列的第101个及之后的请求均被拒绝,系统将返回请求失败的信息至相应的客户端。
在本申请的第四实施例提出的流量控制方法中,在第二时间段设置等待队列,并将超出第二阀值的部分请求加入等待队列,而非直接拒绝,使得系统能够容纳更高的瞬时流量,针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量。
第五实施例
图4所示为本申请第五实施例的流量控制方法的流程图。如图4所示,本申请第五实施例提出一种流量控制方法,该方法包括如下步骤:
S501,接收第二时间段内的物流数据处理请求;
S502,判断所述第二时间段内的接收的请求数目与等待队列中的请求数目的总和是否超出该第二时间段所能执行的第二阀值;
S503,当判断所述总和超出该第二阀值时,判断超出第二阀值的请求的数目是否超出第二等待阀值;
S504,当所述超出第二阀值的请求的数目未超出所述等待阀值时,将所述超出所述第二阀值且未超出等待阀值的请求加入等待队列;
S505,当所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
上述步骤S501至步骤S505可以与上一实施例的步骤S401至S405相同或相似,在此不再赘述。
可选地,该实施例还可以包括:
S506,接收第一时间段内的物流数据处理请求;
在这一步骤中,第一时间段例如为第一秒钟。服务端(例如服务器)能够通过RPC调用等方式获取多个客户端在第一时间段内产生的多个物流数据处理的请求。这一步骤可以与步骤S101相同或相似,在此不再赘述。
S507,判断第一时间段内接收的请求的数目是否超出该第一时间段所能执行的第一阀值;
在这一步骤中,服务器可以通过流量计数判断第一时间段内获得的请求的数目是否超出当前的第一时间段能执行的第一阀值。这一步骤可以与步骤S102相同或相似,在此不再赘述。
S508,当判断所述请求的数目超出该第一阀值时,判断超出第一阀值的请求的数目是否超出第一等待阀值;
在这一步骤中,在服务器在第一时间段内接收到的请求的数目超出阀值后,本申请的流量控制系统会持续从服务接口调用请求,当判断出请求的数目超出第一阀值后,系统继续计数,判断超出所述第一阀值的请求的数目是否超出第一等待阀值。第一等待阀值可以是通过预设条件例如系统的处理能力计算出的阀值,或者是通过人为设定获得,在此并不特别限制。这一步骤与步骤S103相同或相似,在此不再赘述。
S509,当判断超出第一阀值的请求的数目未超出第一等待阀值时,将超出第一阀值且未超出所述第一等待阀值的请求加入等待队列。
在这一步骤中,当系统判断出超出第一阀值的请求的数目未超出第一等待阀值时,可以将超出上述第一阀值但未超出第一等待阀值的请求发送至等待队列。这一步骤可与步骤S104相同或相似,在此不再赘述。
可选地,在步骤S509,即将超出第一阀值且未超出所述第一等待阀值的请求加入等待队列之后,本实施例公开的方法还可以包括如下步骤:
S510,在所述第二时间段内执行所述等待队列中的请求。
这一步骤可以包括如下两个子步骤:
S510a,将所述超出第一阀值且未超出所述第一等待阀值的请求阻塞第一阻塞时间;
S510b,在第一阻塞时间结束之后,在所述第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;
其中,所述第一阻塞时间为所述超出第一阀值且未超出所述第一等待阀值的请求进入所述第二时间段所需要的时间。
上述步骤S510及其子步骤与步骤S106及其子步骤相同或相似,在此不再赘述。
在本申请的第五实施例提出的流量控制方法中,通过在第二时间段设置等待队列,将超出第一阀值的部分请求后延至第二时间段执行,并将超出第二阀值的部分请求加入等待队列,后延至之后的时间段执行,使得系统能够容纳更高的瞬时流量,针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量。
第六实施例
本申请第六实施例提出一种流量控制方法,在第四实施例的步骤S401至S405的基础上,或者在第二实施例的步骤S501至S510的基础上,所述方法还可以包括如下步骤:
S611,计算流量;以及
S612,判断所述流量是否达到所述流量预警阀值。
在上述步骤中,流量是指单位时间内的请求数,可以通过特定时间段内的请求数除以该时间段的时长,计算出该时间段的流量。步骤S611即计算流量的步骤例如可以包括如下两种方式:
S611a,根据当前时间段内的请求的数目计算流量;或者
S611b,根据前N个时间段的请求的数目计算流量;其中N为大于2的自然数。
上述的S611a和S611b分别为计算流量的两种可能的情形。第一种情形为根据当前时间段内的请求数计算流量,在这一种情形下,可以仅根据当前时间段内的请求数确定当前流量,当前时间段可以为正在处理任务的时间段,例如第一时间段或第二时间段。举例来说,第二时间段(1s)的前100ms接收到的流量为100个,则计算出的流量为100/0.1s=1000,则当前的第二时间段的平均流量为1000。第二种情形为根据前N个时间段的请求数计算流量;在这一种情形下,可以利用前N个时间段的请求数计算出请求走势,确定待监控的流量。例如,前N个时间段的请求数在随着时间每次递增10%,则可以预测待监控的流量会基于最近一次的时间段(第一时间段)的请求数递增10%。按照这一趋势,可以预测流量。然而,正如本领域技术人员能够得知的,计算流量可以有多种方式,本申请并不以此为限。
可选地,所述方法还可以包括如下步骤:
S613,当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零;其中,所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间;
在这一步骤中,当确定流量达到流量预警阀值时,可以对当前执行的线程进行再增加阻塞时间,延长其响应时间。剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间。为了避免响应时间过长导致客户端请求超时,可阻塞总时间通常设置为用户的客户端判断出请求超时的最短时间,即从用户的客户端发出请求,到用户的客户端因为未收到响应而自动判断请求超时的最短时间,因此此处的剩余可阻塞时间包括可阻塞总时间减去上述的第一阻塞时间。客户端请求超时的最短时间例如为1s,假设在步骤S106a中的第一阻塞时间为700ms,则本步骤中的可阻塞时间为300ms。
S614,当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
在这一步骤中,当判断出剩余可阻塞时间大于零时,根据剩余可阻塞时间,将当前超出流量预警阀值的请求阻塞特定的时间。这一特定的时间可以小于等于上述的剩余可阻塞时间。
由上述可知,本申请第三实施例提出的流量控制方法中,通过设置等待队列,实现了容纳更高的瞬时流量,因此针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量;同时将第一时间段内无法处理完的请求进行阻塞,延迟至第一时间段之后的第二时间段内执行,通过适当增大响应时间减少了单位时间内请求的频率,提高响应请求的成功率,减少了无谓的失败请求。
另外,根据本申请第六实施例提出的流量控制方法,可以使用自动流量控制分析来对单机或者集群中的流量进行自动分析和控制,可以敏锐捕捉最近一段时间的流量趋势,计算可阻塞时间,在不影响客户体验的同时适当提高请求线程的响应时间,减小单位时间内的流量来做到自动干预请求频度,增强系统的容错能力、减小失败率。
装置实施例一
图5所示本申请实施例的流量控制系统的方框图。如图5所示,本申请实施例提出一种流量控制系统,包括:
第一接收模块701,用于接收第一时间段内的物流数据处理的请求;
第一判断模块702,用于判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;
第二判断模块703,用于当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出第一等待阀值;
第一发送模块704,用于当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将所述超出所述第一阀值且未超出第一等待阀值的请求加入等待队列;
第一请求拒绝模块705,用于当超出所述第一阀值的请求的数目超出所述第一等待阀值时,拒绝所述超出第一等待阀值的请求。
在一可选实施例中,所述系统还可以包括:第一执行模块,用于在第一时间段之后的第二时间段内执行所述等待队列中的请求。
在一可选实施例中,所述系统还可以包括:
第二接收模块,用于接收第二时间段内的物流数据处理的请求;
第三判断模块,用于判断所述等待队列中的请求的数目与第二时间段内接收的请求的数目的总和是否超出该第二时间段所能执行的第二阀值;
第二执行模块,用于当判断所述总和未超出所述第二阀值时,在所述第二时间段内执行所述所述第二时间段内接收的请求;
第四判断模块,用于当判断所述总和超出所述第二阀值时,判断超出所述第二阀值的请求的数目是否超出第二等待阀值;
第二发送模块,用于当判断出所述超出第二阀值的请求的数目未超出所述第二等待阀值时;将所述超出第二阀值且未超出所述第二等待阀值的请求加入等待队列;
第二请求拒绝模块,用于当判断出所述超出第二阀值的请求的数目超出所述第二等待阀值时;拒绝所述超出第二阀值且超出所述第二等待阀值的请求。
在一可选实施例中,所述第一执行模块包括:
第一阻塞子模块,用于将所述超出第一阀值且未超过第一等待阀值的请求阻塞第一阻塞时间;
第一执行子模块,用于在第一阻塞时间结束之后,在第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;
其中,所述第一阻塞时间为所述超出第一阀值且未超出等待阀值的请求进入所述第二时间段所需要的时间。
在一可选实施例中,所述系统还可以包括:
第一流量计算模块。用于计算流量;以及
第一流量判断模块,用于判断所述流量是否达到所述流量预警阀值。
在一可选实施例中,所述第一流量计算模块包括:
第一流量计算子模块,用于根据当前时间段内的请求的数目计算流量;或者
第二流量计算子模块,根据前N个时间段的请求的数目计算流量;其中N为大于2的自然数。
在一可选实施例中,所述系统还包括:
第一可阻塞时间判断模块,用于当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零;
所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间。
在一可选实施例中,所述系统还包括:
第一阻塞模块,用于当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
值得说明的是,在本实施例中,
根据本申请装置实施例一提出的流量控制系统,集中化高速缓存流控措施可针对整个集群而不是单机,能够消除现有技术中软负载不均的误差;集中式的流量控制能避免单机流控带来的影响,流量控制阀值针对集群而非单机,能有效应对各种规模的集群和流量。
在本申请的装置实施例一提出的流量控制系统中,在第一时间段设置等待队列,将超出第一阀值的部分请求加入等待队列,而非直接拒绝,使得系统能够容纳更高的瞬时流量,针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量。
装置实施例二
图6所示本申请实施例的流量控制系统的方框图。如图6所示,本申请实施例提出一种流量控制系统,包括:
第三接收模块801,用于接收第二时间段内的物流数据处理请求;
第五判断模块802,用于判断所述第二时间段内的接收的请求数目与等待队列中的请求数目的总和是否超出该第二时间段所能执行的第二阀值;
第六判断模块803,用于当判断所述总和超出该第二阀值时,判断超出第二阀值的请求的数目是否超出第二等待阀值;
第三发送模块804,用于当所述超出第二阀值的请求的数目未超出所述等待阀值时,将所述超出所述第二阀值且未超出等待阀值的请求加入等待队列;
第三请求拒绝模块805,用于当所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
在一可选实施例中,所述系统还包括:
第四接收模块,用于接收第一时间段内的物流数据处理请求;
第七判断模块,用于判断第一时间段内接收的请求的数目是否超出该第一时间段所能执行的第一阀值;
第八判断模块,用于当判断所述请求的数目超出该第一阀值时,判断超出第一阀值的请求的数目是否超出第一等待阀值;
第四发送模块,用于当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将超出第一阀值且未超出所述第一等待阀值的请求加入等待队列。
在一可选实施例中,所述系统还包括:
第三执行模块,用于在所述第二时间段内执行所述等待队列中的请求。
在一可选实施例中,所述第三执行模块包括:
第二阻塞子模块,用于将所述超出第一阀值且未超出所述第一等待阀值的请求阻塞第一阻塞时间;
第二执行子模块,用于在第一阻塞时间结束之后,在所述第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;
其中,所述第一阻塞时间为所述超出第一阀值且未超出所述第一等待阀值的请求进入所述第二时间段所需要的时间。
在一可选实施例中,,所述系统还包括:
第二流量计算模块。用于计算流量;以及
第二流量判断模块,用于判断所述流量是否达到所述流量预警阀值。
在一可选实施例中,所述第二流量计算模块包括:
第三流量计算子模块,用于根据当前时间段内的请求的数目计算流量;或者
第四流量计算子模块,根据前N个时间段的请求的数目计算流量;其中N为大于2的自然数。
在一可选实施例中,所述系统还包括:
第二可阻塞时间判断模块,当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零;
所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间。
在一可选实施例中,,所述系统还包括:
第二阻塞模块,当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
在本申请的装置实施例二提出的流量控制系统中,在第二时间段设置等待队列,并将超出第二阀值的部分请求加入等待队列,而非直接拒绝,使得系统能够容纳更高的瞬时流量,针对批量请求能够做到更好的支撑,避免了现有技术单机流量控制的方法中将超出热点队列限流值的请求直接拒绝,具备了强大的容错机制,能够很好地应对瞬时高峰流量。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信号存储。信号可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信号。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种流量控制方法和流量控制系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (24)
1.一种流量控制方法,其特征在于,包括:
接收第一时间段内的物流数据处理的请求;
判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;
当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出第一等待阀值;
当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将所述超出所述第一阀值且未超出第一等待阀值的请求加入等待队列;
当超出所述第一阀值的请求的数目超出所述第一等待阀值时,拒绝所述超出第一等待阀值的请求。
2.如权利要求1所述的流量控制方法,其特征在于,所述方法还包括:
在第一时间段之后的第二时间段内执行所述等待队列中的请求。
3.如权利要求2所述的流量控制方法,其特征在于,所述方法还包括:
接收第二时间段内的物流数据处理的请求;
判断所述等待队列中的请求的数目与第二时间段内接收的请求的数目的总和是否超出该第二时间段所能执行的第二阀值;
当判断所述总和未超出所述第二阀值时,在所述第二时间段内执行所述第二时间段内接收的请求;
当判断所述总和超出所述第二阀值时,判断超出所述第二阀值的请求的数目是否超出第二等待阀值;
当判断出所述超出第二阀值的请求的数目未超出所述第二等待阀值时;将所述超出第二阀值且未超出所述第二等待阀值的请求加入等待队列;
当判断出所述超出第二阀值的请求的数目超出所述第二等待阀值时;拒绝所述超出第二阀值且超出所述第二等待阀值的请求。
4.如权利要求2所述的流量控制方法,其特征在于,在第一时间段之后的第二时间段内执行所述等待队列中的请求的步骤包括:
将所述超出第一阀值且未超过第一等待阀值的请求阻塞第一阻塞时间;
在第一阻塞时间结束之后,在第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;
其中,所述第一阻塞时间为所述超出第一阀值且未超出等待阀值的请求进入所述第二时间段所需要的时间。
5.如权利要求4所述的流量控制方法,其特征在于,所述方法还包括:
计算流量;以及
判断所述流量是否达到所述流量预警阀值。
6.如权利要求5所述的流量控制方法,其特征在于,
所述计算流量的步骤包括:
根据当前时间段内的请求的数目计算流量;或者
根据前N个时间段的请求的数目计算流量;其中N为大于2的自然数。
7.如权利要求5所述的流量控制方法,其特征在于,所述方法还包括:
当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零;
所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间。
8.如权利要求7所述的流量控制方法,其特征在于,所述方法还包括:
当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
9.一种流量控制方法,其特征在于,包括:
接收第二时间段内的物流数据处理请求;
判断所述第二时间段内的接收的请求数目与等待队列中的请求数目的总和是否超出该第二时间段所能执行的第二阀值;
当判断所述总和超出该第二阀值时,判断超出第二阀值的请求的数目是否超出第二等待阀值;
当所述超出第二阀值的请求的数目未超出所述等待阀值时,将所述超出所述第二阀值且未超出等待阀值的请求加入等待队列;
当所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
10.如权利要求9所述的流量控制方法,其特征在于,在接收第二时间段内的物流数据处理请求之前,所述方法还包括:
接收第一时间段内的物流数据处理请求;
判断第一时间段内接收的请求的数目是否超出该第一时间段所能执行的第一阀值;
当判断所述请求的数目超出该第一阀值时,判断超出第一阀值的请求的数目是否超出第一等待阀值;
当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将超出第一阀值且未超出所述第一等待阀值的请求加入等待队列。
11.如权利要求10所述的流量控制方法,其特征在于,将超出第一阀值且未超出所述第一等待阀值的请求加入等待队列之后,所述方法还包括:
在所述第二时间段内执行所述等待队列中的请求。
12.如权利要求11所述的流量控制方法,其特征在于,在所述第二时间段内执行所述等待队列中的请求包括:
将所述超出第一阀值且未超出所述第一等待阀值的请求阻塞第一阻塞时间;
在第一阻塞时间结束之后,在所述第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;
其中,所述第一阻塞时间为所述超出第一阀值且未超出所述第一等待阀值的请求进入所述第二时间段所需要的时间。
13.如权利要求12所述的流量控制方法,其特征在于,所述方法还包括:
计算流量;以及
判断所述流量是否达到所述流量预警阀值。
14.如权利要求13所述的流量控制方法,其特征在于,
所述计算流量的步骤包括:
根据当前时间段内的请求的数目计算流量;或者
根据前N个时间段的请求的数目计算流量;其中N为大于2的自然数。
15.如权利要求13所述的流量控制方法,其特征在于,所述方法还包括:
当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零;
所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间。
16.如权利要求15所述的流量控制方法,其特征在于,所述方法还包括:
当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
17.一种流量控制系统,其特征在于,包括:
第一接收模块,用于接收第一时间段内的物流数据处理的请求;
第一判断模块,用于判断第一时间段内的所述请求的数目是否超出该第一时间段内所能执行的第一阀值;
第二判断模块,用于当判断所述请求的数目超出所述第一阀值时,判断超出所述第一阀值的请求的数目是否超出第一等待阀值;
第一发送模块,用于当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将所述超出所述第一阀值且未超出第一等待阀值的请求加入等待队列;
第一请求拒绝模块,用于当超出所述第一阀值的请求的数目超出所述第一等待阀值时,拒绝所述超出第一等待阀值的请求。
18.如权利要求17所述的流量控制系统,其特征在于,所述系统还包括:
第一执行模块,用于在第一时间段之后的第二时间段内执行所述等待队列中的请求;
第二接收模块,用于接收第二时间段内的物流数据处理的请求;
第三判断模块,用于判断所述等待队列中的请求的数目与第二时间段内接收的请求的数目的总和是否超出该第二时间段所能执行的第二阀值;
第二执行模块,用于当判断所述总和未超出所述第二阀值时,在所述第二时间段内执所述第二时间段内接收的请求;
第四判断模块,用于当判断所述总和超出所述第二阀值时,判断超出所述第二阀值的请求的数目是否超出第二等待阀值;
第二发送模块,用于当判断出所述超出第二阀值的请求的数目未超出所述第二等待阀值时;将所述超出第二阀值且未超出所述第二等待阀值的请求加入等待队列;
第二请求拒绝模块,用于当判断出所述超出第二阀值的请求的数目超出所述第二等待阀值时;拒绝所述超出第二阀值且超出所述第二等待阀值的请求。
19.如权利要求18所述的流量控制系统,其特征在于,所述第一执行模块包括:
第一阻塞子模块,用于将所述超出第一阀值且未超过第一等待阀值的请求阻塞第一阻塞时间;
第一执行子模块,用于在第一阻塞时间结束之后,在第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;
其中,所述第一阻塞时间为所述超出第一阀值且未超出等待阀值的请求进入所述第二时间段所需要的时间。
20.如权利要求19所述的流量控制系统,其特征在于,所述系统还包括:
第一流量计算模块。用于计算流量;以及
第一流量判断模块,用于判断所述流量是否达到所述流量预警阀值;
第一可阻塞时间判断模块,用于当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零;所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间;
第一阻塞模块,用于当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
21.一种流量控制系统,其特征在于,包括:
第三接收模块,用于接收第二时间段内的物流数据处理请求;
第五判断模块,用于判断所述第二时间段内的接收的请求数目与等待队列中的请求数目的总和是否超出该第二时间段所能执行的第二阀值;
第六判断模块,用于当判断所述总和超出该第二阀值时,判断超出第二阀值的请求的数目是否超出第二等待阀值;
第三发送模块,用于当所述超出第二阀值的请求的数目未超出所述等待阀值时,将所述超出所述第二阀值且未超出等待阀值的请求加入等待队列;
第三请求拒绝模块,用于当所述超出第二阀值的请求的数目超出所述等待阀值时,拒绝所述超出等待阀值的请求。
22.如权利要求21所述的流量控制系统,其特征在于,所述系统还包括:
第四接收模块,用于接收第一时间段内的物流数据处理请求;
第七判断模块,用于判断第一时间段内接收的请求的数目是否超出该第一时间段所能执行的第一阀值;
第八判断模块,用于当判断所述请求的数目超出该第一阀值时,判断超出第一阀值的请求的数目是否超出第一等待阀值;
第四发送模块,用于当超出所述第一阀值的请求的数目未超出所述第一等待阀值时,将超出第一阀值且未超出所述第一等待阀值的请求加入等待队列;
第三执行模块,用于在所述第二时间段内执行所述等待队列中的请求。
23.如权利要求22所述的流量控制系统,其特征在于,所述第三执行模块包括:
第二阻塞子模块,用于将所述超出第一阀值且未超出所述第一等待阀值的请求阻塞第一阻塞时间;
第二执行子模块,用于在第一阻塞时间结束之后,在所述第二时间段内执行所述超出第一阀值且未超过第一等待阀值的请求;
其中,所述第一阻塞时间为所述超出第一阀值且未超出所述第一等待阀值的请求进入所述第二时间段所需要的时间。
24.如权利要求23所述的流量控制系统,其特征在于,所述系统还包括:
第二流量计算模块。用于计算流量;以及
第二流量判断模块,用于判断所述流量是否达到所述流量预警阀值;
第二可阻塞时间判断模块,当判断出流量达到流量预警阀值时,判断剩余可阻塞时间是否大于零,所述剩余可阻塞时间包括可阻塞总时间减去所述第一阻塞时间;
第二阻塞模块,当所述剩余可阻塞时间大于零时,将超出所述流量预警阀值的请求阻塞第二阻塞时间,所述第二阻塞时间小于等于所述剩余可阻塞时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610577202.1A CN107645456B (zh) | 2016-07-20 | 2016-07-20 | 流量控制方法和流量控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610577202.1A CN107645456B (zh) | 2016-07-20 | 2016-07-20 | 流量控制方法和流量控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107645456A true CN107645456A (zh) | 2018-01-30 |
CN107645456B CN107645456B (zh) | 2021-04-30 |
Family
ID=61108307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610577202.1A Active CN107645456B (zh) | 2016-07-20 | 2016-07-20 | 流量控制方法和流量控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107645456B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920283A (zh) * | 2018-08-06 | 2018-11-30 | 成都知道创宇信息技术有限公司 | 基于Prometheus性能监控系统的服务器保护方法 |
CN110278160A (zh) * | 2018-03-15 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 速率控制方法、装置及电子设备 |
CN110321324A (zh) * | 2019-05-06 | 2019-10-11 | 北京百度网讯科技有限公司 | 目录访问流量控制方法、系统、服务器和计算机可读介质 |
CN111935782A (zh) * | 2020-06-29 | 2020-11-13 | 福建天泉教育科技有限公司 | 客户端重试机制的优化方法、存储介质 |
CN114710447A (zh) * | 2020-12-16 | 2022-07-05 | 百寻信息科技(上海)有限公司 | 一种均衡广告流量控制方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394925A (zh) * | 2011-10-28 | 2012-03-28 | 广东电网公司电力科学研究院 | 远程监测诊断中心与地区调度中心的通讯方法及装置 |
JP2013098815A (ja) * | 2011-11-02 | 2013-05-20 | Hitachi Ltd | パケット処理方法及びパケット処理装置 |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN105656795A (zh) * | 2014-11-14 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 虚拟机的流量控制方法及物理机 |
-
2016
- 2016-07-20 CN CN201610577202.1A patent/CN107645456B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394925A (zh) * | 2011-10-28 | 2012-03-28 | 广东电网公司电力科学研究院 | 远程监测诊断中心与地区调度中心的通讯方法及装置 |
JP2013098815A (ja) * | 2011-11-02 | 2013-05-20 | Hitachi Ltd | パケット処理方法及びパケット処理装置 |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN105656795A (zh) * | 2014-11-14 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 虚拟机的流量控制方法及物理机 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278160A (zh) * | 2018-03-15 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 速率控制方法、装置及电子设备 |
CN108920283A (zh) * | 2018-08-06 | 2018-11-30 | 成都知道创宇信息技术有限公司 | 基于Prometheus性能监控系统的服务器保护方法 |
CN110321324A (zh) * | 2019-05-06 | 2019-10-11 | 北京百度网讯科技有限公司 | 目录访问流量控制方法、系统、服务器和计算机可读介质 |
CN111935782A (zh) * | 2020-06-29 | 2020-11-13 | 福建天泉教育科技有限公司 | 客户端重试机制的优化方法、存储介质 |
CN111935782B (zh) * | 2020-06-29 | 2023-08-08 | 福建天泉教育科技有限公司 | 客户端重试机制的优化方法、存储介质 |
CN114710447A (zh) * | 2020-12-16 | 2022-07-05 | 百寻信息科技(上海)有限公司 | 一种均衡广告流量控制方法及系统 |
CN114710447B (zh) * | 2020-12-16 | 2024-05-03 | 百寻信息科技(上海)有限公司 | 一种均衡广告流量控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107645456B (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645456A (zh) | 流量控制方法和流量控制系统 | |
US8447757B1 (en) | Latency reduction techniques for partitioned processing | |
US9825869B2 (en) | Traffic shaping based on request resource usage | |
CN105677466A (zh) | 第三方应用接口的降级处理的方法和装置 | |
KR102047900B1 (ko) | 분산 데이터베이스의 부하를 레벨링하는 방법 및 장치 | |
CN105243169B (zh) | 一种数据查询方法及系统 | |
CN101674320B (zh) | 一种集群环境下的服务寻址方法及装置 | |
US10445167B1 (en) | Automated method and system for diagnosing load performance issues | |
CA2231188C (en) | Controlling traffic congestion in intelligent electronic networks | |
CN106303112B (zh) | 一种话务均衡方法及装置 | |
CN107872517A (zh) | 一种数据处理方法及装置 | |
KR101970901B1 (ko) | 연속적 리디렉션을 처리하기 위한 방법 및 디바이스 | |
JP2023092413A (ja) | クラスタに基づく容量縮小処理方法及び装置 | |
CN105577958A (zh) | 用于调整分流策略和分流用户请求的方法、装置及系统 | |
CN107040566A (zh) | 业务处理方法及装置 | |
CN109815204B (zh) | 一种基于拥塞感知的元数据请求分发方法及设备 | |
CN109120527B (zh) | 一种传输业务流量的方法和系统 | |
US7761528B2 (en) | Method for processing multiple continuous Top-K queries | |
WO2024088079A1 (zh) | 请求处理方法以及系统 | |
CN110266525B (zh) | Cdn服务器数量配置方法、设备及计算机可读存储介质 | |
EP3477953A1 (en) | Method and device for processing data | |
CN106034124B (zh) | 一种流量统计方法和装置 | |
CN111092959B (zh) | 一种集群中服务器的请求处理方法、系统及相关装置 | |
CN107528884B (zh) | 一种聚合服务器的用户请求处理方法和装置 | |
CN106033304A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180411 Address after: Four story 847 mailbox of the capital mansion of Cayman Islands, Cayman Islands, Cayman Applicant after: CAINIAO SMART LOGISTICS HOLDING Ltd. Address before: Cayman Islands Grand Cayman capital building a four storey No. 847 mailbox Applicant before: ALIBABA GROUP HOLDING Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |