CN110138756B - 一种限流方法及系统 - Google Patents
一种限流方法及系统 Download PDFInfo
- Publication number
- CN110138756B CN110138756B CN201910364818.4A CN201910364818A CN110138756B CN 110138756 B CN110138756 B CN 110138756B CN 201910364818 A CN201910364818 A CN 201910364818A CN 110138756 B CN110138756 B CN 110138756B
- Authority
- CN
- China
- Prior art keywords
- current
- service
- distributed
- access request
- node
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000004044 response Effects 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- 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/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/826—Involving periods of time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种限流方法及系统,其中,所述方法包括:分布式节点按照固定周期向中心节点发送当前预设时间段内的服务量;所述中心节点基于接收到的服务量确定所述分布式节点的决策额度,并向所述分布式节点发送所述决策额度;所述分布式节点接收所述中心节点发送的决策额度;所述分布式节点在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。本发明的限流决策由分布式节点自主进行判断,决策路径短,决策快,并且决策准确。
Description
技术领域
本发明涉及互联网限流技术领域,特别涉及一种限流方法及系统。
背景技术
随着互联网的高速发展,计算机系统规模变得越来越大,分布式系统也就应用而生。为了保护系统的稳定性,会限制分布式系统的总体流量。当前限流方式有中心式以及按平均值或权重分配的方式,但是这两种方式都有各自的缺陷。
中心式的缺陷是分布式节点的每一次限流决策都需要跟中心节点进行交互,决策路径长,决策较慢。分布式节点的负载时刻在变化,决策实施时的数据与决策生成、下发到分布式节点时的数据有差异,中心节点无法依照实时的数据做出决策,可能会出现错的决策,影响系统整体性能。
按平均值或权重分配的方式是给每个分布式节点分配固定的服务量,虽然决策较快,但不准确,尤其在负载不均衡的情形下,部分分布式节点过载,而系统总体流量没达到上限值。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种限流方法及系统。所述技术方案如下:
第一方面,提供了一种限流方法,所述方法包括:
分布式节点按照固定周期向中心节点发送当前预设时间段内的服务量;
所述中心节点基于接收到的服务量确定所述分布式节点的决策额度,并向所述分布式节点发送所述决策额度;
所述分布式节点接收所述中心节点发送的决策额度;
所述分布式节点在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
可选的,所述服务量还包括回源量;
相应的,所述分布式节点在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流的步骤,包括:
所述分布式节点在接收到访问请求之后,判断是否需要向源站发送回源请求;
如果需要,则基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
可选的,所述预设时间段内的服务量包括所述分布式节点在所述预设时间段内所产生的流量、所述预设时间段内的平均带宽、所述预设时间段内所建立的连接数或者所述预设时间段内的访问请求数中的一种或多种。
可选的,所述分布式节点基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流的步骤,包括:
所述分布式节点对比当前的服务增量与最新接收到的决策额度;
如果所述分布式节点当前的服务增量小于最新接收到的决策额度,则不限流,否则针对所述访问请求进行限流。
可选的,所述分布式节点在判断出当前的服务增量大于或等于最新接收到的决策额度之后,还包括:
判断当前时刻与上一次向所述中心节点发送服务量的时刻之间的时间间隔;
如果所述时间间隔小于预设时长,则针对所述访问请求进行限流;
如果所述时间间隔大于或等于预设时长,则向所述中心节点发送当前预设时间段内的服务量,并接收所述中心节点发送的新的决策额度,再基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
可选的,所述分布式节点针对所述访问请求进行限流的步骤,包括:
所述分布式节点拒绝服务所述访问请求;或者,
所述分布式节点限制所述访问请求的响应速率。
可选的,所述分布式节点在判断出当前的服务增量大于或等于最新接收到的决策额度之后,还包括:
所述分布式节点以预设响应速率响应所述访问请求;
所述分布式节点接收下一个访问请求,如果当前的服务增量仍大于或等于最新接收到的决策额度,则拒绝服务所述下一个访问请求。
可选的,所述分布式节点以预设响应速率响应所述访问请求之后,还包括::
所述分布式节点接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率大于所述预设响应速率,则以所述预设响应速率响应所述下一个访问请求,其中,所述当前平均响应速率等于当前预设时间段内所产生的流量与当前预设时间段内的访问请求数之间的比值;
所述分布式节点接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率小于或等于所述预设响应速率,则不限流。
第二方面,提供了一种限流系统,该系统包括分布式节点和中心节点:
所述分布式节点,用于按照固定周期向所述中心节点发送当前预设时间段内的服务量;
所述中心节点,用于基于接收到的服务量确定所述分布式节点的决策额度,并向所述分布式节点发送所述决策额度;
所述分布式节点,用于接收所述中心节点发送的决策额度,并在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
可选的,所述服务量还包括回源量;
相应的,所述分布式节点,用于:
在接收到访问请求之后,判断是否需要向源站发送回源请求;
如果需要,则基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
可选的,所述预设时间段内的服务量包括所述分布式节点在所述预设时间段内所产生的流量、所述预设时间段内的平均带宽、所述预设时间段内所建立的连接数或者所述预设时间段内的访问请求数中的一种或多种。
可选的,所述分布式节点,用于:
对比当前的服务增量与最新接收到的决策额度;
如果当前的服务增量小于最新接收到的决策额度,则不限流,否则针对所述访问请求进行限流。
可选的,所述分布式节点,用于:
判断当前时刻与上一次向所述中心节点发送服务量的时刻之间的时间间隔;
如果所述时间间隔小于预设时长,则针对所述访问请求进行限流;
如果所述时间间隔大于或等于预设时长,则向所述中心节点发送当前预设时间段内的服务量,并接收所述中心节点发送的新的决策额度,再基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
可选的,所述分布式节点,用于:
通过拒绝服务所述访问请求进行限流;或者,
通过限制所述访问请求的响应速率进行限流。
可选的,所述分布式节点,用于:
在判断出当前的服务增量大于或等于最新接收到的决策额度之后,以预设响应速率响应所述访问请求;
接收下一个访问请求,如果当前的服务增量仍大于或等于最新接收到的决策额度,则拒绝服务所述下一个访问请求。
可选的,所述分布式节点,用于:
在以预设响应速率响应所述访问请求之后,接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率大于所述预设响应速率,则以所述预设响应速率响应所述下一个访问请求,其中,所述当前平均响应速率等于当前预设时间段内所产生的流量与当前预设时间段内的访问请求数之间的比值;
接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率小于或等于所述预设响应速率,则不限流。
第三方面,提供了一种节点设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面的限流方法中所述分布式节点所执行的处理过程。
第四方面,提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述第一方面的限流方法中所述分布式节点所执行的处理过程。
本发明实施例的限流决策由分布式节点自主进行判断,决策路径短,决策快,并且通过统计学原理,可以根据各个分布式节点实时的服务量大小,分配相应大小的决策额度,也就是说,服务量越大,分配的决策额度也就越高,从而使服务量较大地区的分布式节点能够最大程度地接收并响应访问请求,提高了资源的利用率,并且该限流方式更加准确,能够提高分布式系统的服务性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种网络框架示意图;
图2是本发明实施例提供的一种限流方法的流程图;
图3是本发明实施例提供的另一种网络框架示意图;
图4是本发明实施例提供的一种节点设备的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种限流方法,该方法可以应用于图1所示的网络框架中。该网络框架包括中心节点和多个分布式节点,每个分布式节点均连接中心节点。在CDN(Content Delivery Network,内容分发网络)系统中,分布式节点即为CDN节点。其中,分布式节点用于接收客户端发送的访问请求,并进行服务。在限流应用的场景中,各个分布式节点首先按照固定周期向中心节点发送当前预设时间段内的服务量,所述中心节点再基于全部的分布式节点发送的服务量确定各个所述分布式节点对应的决策额度,并向各个所述分布式节点发送相应的决策额度,各个所述分布式节点接收所述决策额度,并在接收到访问请求之后基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。由于限流决策由分布式节点自主进行判断,决策路径短,决策快,并且通过统计学原理,可以根据各个分布式节点实时的服务量大小,分配相应大小的决策额度,也就是说,服务量越大,分配的决策额度也就越高,从而使服务量较大地区的分布式节点能够最大程度地接收并响应访问请求,提高了资源的利用率,并且该限流方式更加准确,能够提高分布式系统的服务性能。
参照图2,为本发明实施例提供的一种限流方法的流程图,该方法具体包括以下步骤。
步骤201,分布式节点按照固定周期向中心节点发送当前预设时间段内的服务量。
分布式系统中的各个分布式节点按照同一固定周期向中心节点发送当前预设时间段内的服务量。该固定周期的时长可以设置为任一时长,例如一秒或一分钟。当前预设时间段内的服务量可以是当前时刻往前推一段时间内的服务量。例如,当前时刻为t,预设时间段为1分钟,则当前预设时间段内的服务量为t-1时刻至t时刻这段时间内的服务量。
在CDN系统中,在CDN节点(分布式节点)接收到客户端发送的访问请求之后,如果该节点中缓存有待访问的内容,则直接使用缓存进行响应,即服务访问请求。如果该CDN节点中没有缓存待访问的内容,或缓存的内容已经到期,则会向源站发送回源请求获取内容,即回源。本发明实施例可以针对服务访问请求的场景进行限流,也可以针对回源的场景进行限流,即限制CDN节点向源站发送回源请求。在针对服务访问请求的场景进行限流时,分布式节点向中心节点发送的服务量为响应访问请求所产生的服务量。在针对回源的场景进行限流时,分布式节点向中心节点发送的服务量为回源时所产生的服务量。也就是说,分布式节点向中心节点发送的服务量包括响应访问请求所产生的服务量,或者回源时所产生的服务量,也即回源量。针对回源的场景进行限流,可以防止源站承载过大的访问压力,保护源站的稳定性。
服务量可以用流量、带宽、连接数或访问请求数进行表示。具体的,当分布式节点向中心节点发送的服务量是响应访问请求所产生的服务量时,所述预设时间段内的服务量包括所述分布式节点在所述预设时间段内所产生的流量、所述预设时间段内的平均带宽,所述预设时间段内所建立的连接数或者所述预设时间段内的访问请求数中的一种或多种。当服务量用连接数表示时,所述预设时间段内的服务量为分布式节点在所述预设时间段内与客户端建立的连接数。当服务量用访问请求数表示时,所述预设时间段内的服务量为分布式节点在所述预设时间段内的访问请求数,其中预设时间段内的访问请求数可以是已响应完的访问请求数,或是已响应完的访问请求数与当前正响应的访问请求数之和,再或者是已响应完的访问请求数、当前正响应的访问请求数与未响应的访问请求数之和。
当分布式节点向中心节点发送的服务量是回源量时,所述预设时间段内的服务量包括所述分布式节点在所述预设时间段内所产生的流量(回源流量)、所述预设时间段内的平均带宽(回源带宽)或者所述预设时间段内所建立的连接数中的一种或多种。所述分布式节点在所述预设时间段内所产生的回源流量可以为所述分布式节点在所述预设时间段内回源获取到的内容的大小。当服务量用连接数表示时,所述预设时间段内的服务量为分布式节点在所述预设时间段内与源站建立的连接数。
步骤202,所述中心节点基于接收到的服务量确定所述分布式节点的决策额度,并向所述分布式节点发送所述决策额度。
各个分布式节点定时向中心节点发送最新的服务量,中心节点根据最新的服务量计算各个分布式节点的服务占,然后根据各个分布式节点的服务占比计算各个分布式节点对应的决策额度,服务占比越大,对应的决策额度也就越高,也就允许接收更多的服务访问请求,从而能够根据分布式节点实时的服务量大小,实时调节其决策额度,在根据该决策额度决定是否需要限流,保证限流的准确性,提高整个分布式系统的服务性能。
所述分布式节点对应的决策额度的表达式为:
ECLi=(LT-(EC1+EC2+……+ECn))*ECPi,i=1,2……n,
其中,ECLi表示第i个分布式节点对应的决策额度,LT表示总体限制数,ECi表示第i个分布式节点对应的服务量,ECPi表示第i个分布式节点的服务占比,ECPi=ECi/(EC1+EC2+……+ECn)。
总体限制数为预先存储在中心节点中的值,表示分布式系统所允许承载的总负载。在具体实施中,总体限制数可以是针对服务访问请求所产生的服务量的总体限制数也可以是针对回源量的总体限制数。在针对服务访问请求的场景进行限流时,总体限制数可以是针对服务访问请求所产生的服务量的总体限制数。在针对回源的场景进行限流时,总体限制数是针对回源量的总体限制数。
总体限制数与分布式节点上报给中心节点的服务量的表示方式相对应,也就是说,如果服务量使用流量进行表示,则总体限制数也使用流量进行表示;如果服务量使用带宽进行表示,则总体限制数也使用带宽进行表示;如果服务量使用连接数进行表示,则总体限制数也使用连接数进行表示;如果服务量使用访问请求量进行表示,则总体限制数也使用访问请求量进行表示。
步骤203,所述分布式节点接收所述中心节点发送的决策额度。
步骤204,所述分布式节点在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
在针对服务访问请求的场景进行限流时,分布式节点每接收到一个访问请求,便判断是否需要针对该访问请求进行限流。在针对回源的场景进行限流时,所述分布式节点在接收到访问请求之后,判断是否需要向源站发送回源请求;如果需要,则基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。分布式节点基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流的具体流程为:所述分布式节点在接收到访问请求之后,对比当前的服务增量与最新接收到的决策额度,其中,所述服务增量为当前预设时间段内的服务量与最后一次发送给所述中心节点的服务量之间的差值;如果所述分布式节点当前的服务增量小于最新接收到的决策额度,则不限流,否则针对所述访问请求进行限流。
在另一种实施方式中,在所述分布式节点判断出当前的服务增量大于或等于最新接收到的决策额度之后,判断当前时刻与上一次向所述中心节点发送服务量的时刻之间的时间间隔;如果所述时间间隔小于预设时长,则针对所述访问请求进行限流;如果所述时间间隔大于或等于预设时长,则向所述中心节点发送当前预设时间段内的服务量,并接收所述中心节点发送的新的决策额度,再基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
上述预设时长短于分布式节点定时向中心节点上报服务量的固定周期。例如,分布式节点定时向中心节点上报服务量的固定周期为1分钟,该预设时长可以设置为30s。分布式节点在接收到决策额度之后,距离得到该决策额度的时间越久,该决策额度可能就越不准确。所以当距离得到该决策额度的时间较久,也即当前时刻与上一次向所述中心节点发送服务量的时刻之间的时间间隔超过预设时长时,说明需要获取新的决策额度,防止由于决策额度更新不及时出现错误限流,而影响服务质量。
在具体实施中,即使还没有到定时向中心节点上报服务量的时刻,只要中心节点接收到某一分布式节点发送的服务量时,便重新计算一次决策额度,并将新的决策额度下发至该分布式节点。
以下,以针对服务访问请求的场景进行限流为例,对分布式节点的限流方法进行举例说明。
假设分布式节点定时向中心节点上报服务量的固定周期为1分钟,用于统计服务量的预设时间段为2分钟,限流响应流程为:
(1)分布式节点在t1时刻向中心节点发送t1-2至t1时刻内的服务量ECi1;
(2)分布式节点接收中心节点发送的决策额度ECLi1;
(3)分布式节点在t2时刻接收到访问请求a,计算当前的服务增量Di1,Di1=t2-2至t2时刻内的服务量ECi2-ECi1,如果服务增量Di1小于决策额度ECLi1,则不进行限流;
(4)分布式节点在t3时刻接收到下一个访问请求b,计算当前的服务增量Di2,Di2=t3-2至t3时刻内的服务量ECi3-ECi1,如果服务增量Di2小于决策额度ECLi1,则不进行限流,并结束该流程,否则判断当前时刻与上一次向所述中心节点发送服务量的时刻,即t1时刻之间的时间间隔;
(5)如果该时间间隔大于预设时长,则向中心节点发送t3-2至t3时刻内的服务量ECi3,并转下一步,否则针对访问请求b进行限流;
(6)分布式节点接收中心节点发送的决策额度ECLi3;
(7)分布式节点对比服务增量Di2与决策额度ECLi3,如果服务增量Di2小于决策额度ECLi3,则不进行限流,否则针对访问请求b进行限流。
在针对回源的场景进行限流时,可以通过拒绝服务访问请求进行限流,即不向源站发送回源请求。在针对服务访问请求的场景进行限流时,可以通过拒绝服务访问请求或限制访问请求的响应速度来进行限流,或者两种方式相结合进行限流。通过两种方式相结合进行限流的流程为:
所述分布式节点接收当前访问请求,在判断出当前的服务增量大于或等于最新接收到的决策额度之后,以预设响应速率响应所述访问请求;
所述分布式节点接收下一个访问请求,如果当前的服务增量仍大于或等于最新接收到的决策额度,则拒绝服务所述下一个访问请求;如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率大于所述预设响应速率,则以所述预设响应速率响应所述下一个访问请求,其中,所述当前平均响应速率等于当前预设时间段内所产生的流量与当前预设时间段内的访问请求数之间的比值;如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率小于或等于所述预设响应速率,则不限流。
当无需针对接收到的访问请求进行限流时,则以默认的响应速率处理该访问请求,上述预设响应速率小于该默认的响应速率。
如图3所示,还可以设置备用中心节点,中心节点定时将数据同步到该备用中心节点。当所述中心节点发生故障时,由备用中心节点代替所述中心节点提供服务。具体的,所述中心节点与所述备用中心节点连接同一接入层,所述接入层连接各个所述分布式节点。接入层用于接收各个分布式节点发送的数据,并将数据导流到中心节点或备用中心节点。当中心节点正常工作时,接入层将接收到的数据导流到中心节点,当中心节点发生故障时,接入层将接收到的数据导流到备用中心节点,从而保证限流决策正常进行,保证分布式系统的服务性能。
本发明实施例的限流决策由分布式节点自主进行判断,决策路径短,决策快,并且通过统计学原理,可以根据各个分布式节点实时的服务量大小,分配相应大小的决策额度,也就是说,服务量越大,分配的决策额度也就越高,从而使服务量较大地区的分布式节点能够最大程度地接收并响应访问请求,提高了资源的利用率,并且该限流方式更加准确,能够提高分布式系统的服务性能。
本发明实施例还提供了一种限流系统,该系统包括分布式节点和中心节点;
所述分布式节点,用于按照固定周期向所述中心节点发送当前预设时间段内的服务量;
所述中心节点,用于基于接收到的服务量确定所述分布式节点的决策额度,并向所述分布式节点发送所述决策额度;
所述分布式节点,用于接收所述中心节点发送的决策额度,并在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
优选的,所述服务量还包括回源量;
相应的,所述分布式节点,用于:
在接收到访问请求之后,判断是否需要向源站发送回源请求;
如果需要,则基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
优选的,所述预设时间段内的服务量包括所述分布式节点在所述预设时间段内所产生的流量、所述预设时间段内的平均带宽、所述预设时间段内所建立的连接数或者所述预设时间段内的访问请求数中的一种或多种。
优选的,所述分布式节点,用于:
对比当前的服务增量与最新接收到的决策额度;
如果当前的服务增量小于最新接收到的决策额度,则不限流,否则针对所述访问请求进行限流。
优选的,所述分布式节点,用于:
判断当前时刻与上一次向所述中心节点发送服务量的时刻之间的时间间隔;
如果所述时间间隔小于预设时长,则针对所述访问请求进行限流;
如果所述时间间隔大于或等于预设时长,则向所述中心节点发送当前预设时间段内的服务量,并接收所述中心节点发送的新的决策额度,再基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
优选的,所述分布式节点,用于:
通过拒绝服务所述访问请求进行限流;或者,
通过限制所述访问请求的响应速率进行限流。
优选的,所述分布式节点,用于:
在判断出当前的服务增量大于或等于最新接收到的决策额度之后,以预设响应速率响应所述访问请求;
接收下一个访问请求,如果当前的服务增量仍大于或等于最新接收到的决策额度,则拒绝服务所述下一个访问请求。
优选的,所述分布式节点,用于:
在以预设响应速率响应所述访问请求之后,接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率大于所述预设响应速率,则以所述预设响应速率响应所述下一个访问请求,其中,所述当前平均响应速率等于当前预设时间段内所产生的流量与当前预设时间段内的访问请求数之间的比值;
接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率小于或等于所述预设响应速率,则不限流。
本发明实施例的限流决策由分布式节点自主进行判断,决策路径短,决策快,并且通过统计学原理,可以根据各个分布式节点实时的服务量大小,分配相应大小的决策额度,也就是说,服务量越大,分配的决策额度也就越高,从而使服务量较大地区的分布式节点能够最大程度地接收并响应访问请求,提高了资源的利用率,并且该限流方式更加准确,能够提高分布式系统的服务性能。
需要说明的是:上述实施例提供的限流系统与限流方法的实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图3是本发明实施例提供的节点设备的结构示意图。该节点设备400可因配置或性能不同而产生比较大差异,可以包括一个或一个以上中央处理器422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据344的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对节点设备中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在节点设备400上执行存储介质430中的一系列指令操作。
节点设备400还可以包括一个或一个以上电源424,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口458,一个或一个以上键盘454,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
节点设备400可以包括有存储器,以及一个或者一个以上的计算机程序,其中一个或者一个以上计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上计算机程序以实现上述限流方法中分布式节点所执行的处理过程:
按照固定周期向中心节点发送当前预设时间段内的服务量;
接收所述中心节点发送的决策额度;
在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行拒绝服务或限流。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种限流方法,其特征在于,所述方法包括:
分布式系统中的各个分布式节点按照固定周期向中心节点发送当前预设时间段内的服务量,其中,所述当前预设时间段内的服务量为当前时刻往前推预设时间段内的服务量;
所述中心节点基于接收到的各个所述分布式节点发送的所述服务量计算所述分布式节点的服务占比,并根据所述分布式节点的服务占比计算所述分布式节点的决策额度,并向所述分布式节点发送所述决策额度,其中,所述服务占比越大,对应的所述决策额度越高;
所述分布式节点接收所述中心节点发送的决策额度;
所述分布式节点在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
2.根据权利要求1所述的方法,其特征在于,所述服务量还包括回源量;
相应的,所述分布式节点在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流的步骤,包括:
所述分布式节点在接收到访问请求之后,判断是否需要向源站发送回源请求;
如果需要,则基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
3.根据权利要求1或2所述的方法,其特征在于,所述预设时间段内的服务量包括所述分布式节点在所述预设时间段内所产生的流量、所述预设时间段内的平均带宽、所述预设时间段内所建立的连接数或者所述预设时间段内的访问请求数中的一种或多种。
4.根据权利要求1所述的方法,其特征在于,所述分布式节点基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流的步骤,包括:
所述分布式节点对比当前的服务增量与最新接收到的决策额度;
如果所述分布式节点当前的服务增量小于最新接收到的决策额度,则不限流,否则针对所述访问请求进行限流。
5.根据权利要求4所述的方法,其特征在于,所述分布式节点在判断出当前的服务增量大于或等于最新接收到的决策额度之后,还包括:
判断当前时刻与上一次向所述中心节点发送服务量的时刻之间的时间间隔;
如果所述时间间隔小于预设时长,则针对所述访问请求进行限流;
如果所述时间间隔大于或等于预设时长,则向所述中心节点发送当前预设时间段内的服务量,并接收所述中心节点发送的新的决策额度,再基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
6.根据权利要求4或5所述的方法,其特征在于,所述分布式节点针对所述访问请求进行限流的步骤,包括:
所述分布式节点拒绝服务所述访问请求;或者,
所述分布式节点限制所述访问请求的响应速率。
7.根据权利要求4所述的方法,其特征在于,所述分布式节点在判断出当前的服务增量大于或等于最新接收到的决策额度之后,还包括:
所述分布式节点以预设响应速率响应所述访问请求;
所述分布式节点接收下一个访问请求,如果当前的服务增量仍大于或等于最新接收到的决策额度,则拒绝服务所述下一个访问请求。
8.根据权利要求7所述的方法,其特征在于,所述分布式节点以预设响应速率响应所述访问请求之后,还包括:
所述分布式节点接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率大于所述预设响应速率,则以所述预设响应速率响应所述下一个访问请求,其中,所述当前平均响应速率等于当前预设时间段内所产生的流量与当前预设时间段内的访问请求数之间的比值;
所述分布式节点接收所述下一个访问请求,如果当前的服务增量小于最新接收到的决策额度,并且当前平均响应速率小于或等于所述预设响应速率,则不限流。
9.一种限流系统,其特征在于,所述系统应用于分布式系统中,包括分布式节点和中心节点;
所述分布式节点,用于按照固定周期向所述中心节点发送当前预设时间段内的服务量,其中,所述当前预设时间段内的服务量为当前时刻往前推预设时间段内的服务量;
所述中心节点,用于基于接收到的各个所述分布式节点发送的所述服务量计算所述分布式节点的服务占比,并根据所述分布式节点的服务占比计算所述分布式节点的决策额度,并向所述分布式节点发送所述决策额度,其中,所述服务占比越大,对应的所述决策额度越高;
所述分布式节点,用于接收所述中心节点发送的决策额度,并在接收到访问请求之后,基于最新接收到的决策额度判断是否需要针对所述访问请求进行限流。
10.根据权利要求9所述的系统,其特征在于,所述预设时间段内的服务量包括所述分布式节点在所述预设时间段内所产生的流量、所述预设时间段内的平均带宽、所述预设时间段内所建立的连接数或者所述预设时间段内的访问请求数中的一种或多种。
11.一种节点设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8中任一项所述的限流方法中所述分布式节点所执行的处理过程。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的限流方法中所述分布式节点所执行的处理过程。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364818.4A CN110138756B (zh) | 2019-04-30 | 2019-04-30 | 一种限流方法及系统 |
PCT/CN2019/090339 WO2020220430A1 (zh) | 2019-04-30 | 2019-06-06 | 一种限流方法及系统 |
EP19894390.4A EP3758325B1 (en) | 2019-04-30 | 2019-06-06 | Traffic limiting method, node and system |
US16/902,800 US11316792B2 (en) | 2019-04-30 | 2020-06-16 | Method and system of limiting traffic |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364818.4A CN110138756B (zh) | 2019-04-30 | 2019-04-30 | 一种限流方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110138756A CN110138756A (zh) | 2019-08-16 |
CN110138756B true CN110138756B (zh) | 2021-05-25 |
Family
ID=67576039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910364818.4A Expired - Fee Related CN110138756B (zh) | 2019-04-30 | 2019-04-30 | 一种限流方法及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11316792B2 (zh) |
EP (1) | EP3758325B1 (zh) |
CN (1) | CN110138756B (zh) |
WO (1) | WO2020220430A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404824B (zh) * | 2020-03-06 | 2023-05-19 | 抖音视界有限公司 | 用于转发请求的方法、装置、电子设备和计算机可读介质 |
CN112073329B (zh) * | 2020-08-25 | 2023-01-24 | 北京五八信息技术有限公司 | 分布式限流方法、装置、电子设备和存储介质 |
CN112383486A (zh) * | 2020-11-05 | 2021-02-19 | 北京同有飞骥科技股份有限公司 | 基于租约的分布式对象存储服务质量保证方法及系统 |
CN112702321B (zh) * | 2020-12-15 | 2023-04-07 | 深圳市快付通金融网络科技服务有限公司 | 分布式交易限流方法、装置、设备及存储介质 |
CN112600932B (zh) * | 2020-12-22 | 2023-04-07 | 百度在线网络技术(北京)有限公司 | 定量下发方法、控制台、下发节点、设备和介质 |
CN112887218B (zh) * | 2020-12-22 | 2022-10-21 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN113328906B (zh) * | 2021-04-22 | 2023-01-06 | 成都欧珀通信科技有限公司 | 一种流量实时监控方法、装置、存储介质及电子设备 |
CN113691596B (zh) * | 2021-08-12 | 2023-06-30 | 北京奇艺世纪科技有限公司 | 一种网关控制方法、装置、电子设备及存储介质 |
CN114745338B (zh) * | 2022-03-30 | 2024-09-06 | Oppo广东移动通信有限公司 | 流量控制方法、装置、存储介质以及服务器 |
CN115242808B (zh) * | 2022-07-13 | 2024-03-08 | 山东浪潮超高清智能科技有限公司 | 一种分布式系统限流控制系统和方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219319A (zh) * | 2014-09-15 | 2014-12-17 | 南京邮电大学 | 一种分布式网络流量自组织调度方法 |
CN105450780A (zh) * | 2015-12-31 | 2016-03-30 | 深圳市网心科技有限公司 | 一种cdn系统及其回源方法 |
CN106101183A (zh) * | 2016-05-30 | 2016-11-09 | 乐视控股(北京)有限公司 | 回源请求的中转方法和装置及回源系统 |
CN107204933A (zh) * | 2016-03-16 | 2017-09-26 | 华为技术有限公司 | 分布式流量调节方法及装置 |
CN108366020A (zh) * | 2018-02-02 | 2018-08-03 | 网宿科技股份有限公司 | 一种发送数据资源的获取请求的方法和系统 |
CN108848038A (zh) * | 2018-08-30 | 2018-11-20 | 华为技术有限公司 | 基于令牌桶的流量管理方法和令牌桶节点 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7412245B2 (en) * | 2005-11-01 | 2008-08-12 | Alpha Networks Inc. | Dynamic wireless meshing network for supporting load balance and flow control |
US8265086B2 (en) * | 2009-06-26 | 2012-09-11 | Nokia Corporation | Multi-path transport |
CN101702669B (zh) * | 2009-11-18 | 2012-04-11 | 网宿科技股份有限公司 | 带宽分配方法和系统 |
US9438487B2 (en) * | 2012-02-23 | 2016-09-06 | Ericsson Ab | Bandwith policy management in a self-corrected content delivery network |
US20150029851A1 (en) * | 2013-07-26 | 2015-01-29 | Telefonaktiebolaget L M Ericsson (Publ) | Managing the traffic load of a delivery node |
US9455932B2 (en) * | 2014-03-03 | 2016-09-27 | Ericsson Ab | Conflict detection and resolution in an ABR network using client interactivity |
US9336537B2 (en) * | 2014-03-06 | 2016-05-10 | Catalina Marketing Corporation | System and method of providing a particular number of distributions of media content through a plurality of distribution nodes |
CN103997522B (zh) * | 2014-05-16 | 2018-01-23 | 广州金山网络科技有限公司 | 一种内容分发网络流量控制方法及终端 |
CN108574965B (zh) * | 2017-03-09 | 2021-11-19 | 中国移动通信有限公司研究院 | 一种进行请求处理的方法及设备 |
GB2562307A (en) * | 2017-05-12 | 2018-11-14 | Sky Cp Ltd | Media content delivery |
CN107733972B (zh) * | 2017-08-28 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 一种短链接解析方法、装置及设备 |
-
2019
- 2019-04-30 CN CN201910364818.4A patent/CN110138756B/zh not_active Expired - Fee Related
- 2019-06-06 EP EP19894390.4A patent/EP3758325B1/en active Active
- 2019-06-06 WO PCT/CN2019/090339 patent/WO2020220430A1/zh unknown
-
2020
- 2020-06-16 US US16/902,800 patent/US11316792B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219319A (zh) * | 2014-09-15 | 2014-12-17 | 南京邮电大学 | 一种分布式网络流量自组织调度方法 |
CN105450780A (zh) * | 2015-12-31 | 2016-03-30 | 深圳市网心科技有限公司 | 一种cdn系统及其回源方法 |
CN107204933A (zh) * | 2016-03-16 | 2017-09-26 | 华为技术有限公司 | 分布式流量调节方法及装置 |
CN106101183A (zh) * | 2016-05-30 | 2016-11-09 | 乐视控股(北京)有限公司 | 回源请求的中转方法和装置及回源系统 |
CN108366020A (zh) * | 2018-02-02 | 2018-08-03 | 网宿科技股份有限公司 | 一种发送数据资源的获取请求的方法和系统 |
CN108848038A (zh) * | 2018-08-30 | 2018-11-20 | 华为技术有限公司 | 基于令牌桶的流量管理方法和令牌桶节点 |
Also Published As
Publication number | Publication date |
---|---|
EP3758325A1 (en) | 2020-12-30 |
US20200351207A1 (en) | 2020-11-05 |
EP3758325B1 (en) | 2022-03-23 |
EP3758325A4 (en) | 2021-01-27 |
US11316792B2 (en) | 2022-04-26 |
CN110138756A (zh) | 2019-08-16 |
WO2020220430A1 (zh) | 2020-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110138756B (zh) | 一种限流方法及系统 | |
EP3264723B1 (en) | Method, related apparatus and system for processing service request | |
CN109768879B (zh) | 目标业务服务器的确定方法、装置及服务器 | |
US20170142177A1 (en) | Method and system for network dispatching | |
EP3547625B1 (en) | Method and system for sending request for acquiring data resource | |
US20060129684A1 (en) | Apparatus and method for distributing requests across a cluster of application servers | |
US8260930B2 (en) | Systems, methods and computer readable media for reporting availability status of resources associated with a network | |
CN113810304A (zh) | 一种负载均衡方法、装置、设备和计算机存储介质 | |
WO2019144778A1 (zh) | 带宽调整方法、装置、电子设备及计算机可读存储介质 | |
US11763822B2 (en) | Capping the rate of incoming transactions in inbound stateful conversations established in a distributed computing environment | |
CN109815204B (zh) | 一种基于拥塞感知的元数据请求分发方法及设备 | |
CN111131486A (zh) | 执行节点的负载调节方法、装置、服务器及存储介质 | |
CN110874314A (zh) | 压测方法、装置、设备和介质 | |
CN113395671B (zh) | 消息推送速率的调节方法、装置和服务器 | |
WO2024088079A1 (zh) | 请求处理方法以及系统 | |
CN113835905A (zh) | 一种消息队列负载均衡方法、装置、电子设备及介质 | |
CN105868002B (zh) | 一种用于在分布式计算中处理重发请求的方法与设备 | |
CN110336884B (zh) | 服务器集群更新方法和装置 | |
CN109769020B (zh) | Cdn集群加速服务资源管理方法及装置、电子设备和存储介质 | |
WO2021018058A1 (zh) | 系统过负荷控制方法及装置 | |
CN113608870A (zh) | 消息队列的负载均衡方法及装置、电子设备及存储介质 | |
CN110309225B (zh) | 数据处理方法及系统 | |
CN114095201B (zh) | 基于边缘计算的流量控制方法及装置,电子设备,存储介质 | |
CN115150400B (zh) | 服务故障的处理方法、装置、云服务平台和存储介质 | |
CN115277397B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210525 |