CN117857458A - 基于准实时统计的分布式流量控制方法及系统 - Google Patents

基于准实时统计的分布式流量控制方法及系统 Download PDF

Info

Publication number
CN117857458A
CN117857458A CN202311663218.0A CN202311663218A CN117857458A CN 117857458 A CN117857458 A CN 117857458A CN 202311663218 A CN202311663218 A CN 202311663218A CN 117857458 A CN117857458 A CN 117857458A
Authority
CN
China
Prior art keywords
data
aggregation
statistics
real
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.)
Pending
Application number
CN202311663218.0A
Other languages
English (en)
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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co 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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202311663218.0A priority Critical patent/CN117857458A/zh
Publication of CN117857458A publication Critical patent/CN117857458A/zh
Pending legal-status Critical Current

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
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/286Time to live
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links

Landscapes

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

Abstract

本发明涉及IT与软件开发技术领域,具体为一种基于准实时统计的分布式流量控制方法,包括以下步骤:S1:首先对当前的访问状态进行统计,并根据统计结果和请求许可消费状态下发拦截指令;S2:进行准实时统计限流,将用户请求作为原始数据,先本地聚合,减少数据量,再进行全局的聚合,得到最后的统计结果;S3:通过准实时的统计以及请求许可消费状态控制流量,若用户流量超过了限制则下发拦截指令。本发明应对流量突然增大的情况和使用量误差时,聚能通过负载均衡来减轻影响,从而不会影响客户使用。

Description

基于准实时统计的分布式流量控制方法及系统
技术领域
本发明涉及IT与软件开发技术领域,具体为一种基于准实时统计的分布式流量控制方法及系统。
背景技术
分布式系统:是指一个系统由多个数据处理节点组成,统一对外提供服务。
流量控制:是指针对一个系统的处理能力进行限制,避免系统压力过大,又或者是用于限制用户占用过多的资源。
在一些分布式系统中,可能需要针对每个用户进行限流,例如API网关,因此通常API网关上都会增加一个模块用以进行流量控制。现在比较流行的流量控制算法是令牌桶,但是这种方法并不能均匀地分配令牌,因为每次下发的令牌都是批量下发的,有可能会造成用户在某些数据处理节点上有足够令牌能访问,而在某些数据处理节点上因为缺乏令牌而无法访问的情况,这在大多数场景下不是问题,例如仅仅是为了减轻系统压力,但是在某些场景下不能满足需求,例如用户已按使用频率付费每分钟1万次,在还没将请求许可消费完之前就拒绝访问是不合理的。
在当今的互联网应用中,单机数据处理系统已经很难满足性能需求了,高可用、横向扩展能力几乎是所有应用的标准配置。而如何针对这些分布式系统的所有数据处理节点进行全局的流量控制,避免系统压力过大,或者是控制用户访问频率,又是一个非常常见的需求。
发明内容
本发明的目的在于提供一种基于准实时统计的分布式流量控制方法及系统,对当前的访问状态进行统计,并根据统计结果和请求许可消费状态下发拦截指令,达到准确的流量控制的目标。
为实现上述目的,本发明提供如下技术方案:
一种基于准实时统计的分布式流量控制方法,包括以下步骤:
S1:对当前的访问状态进行统计,并根据统计结果和请求许可消费状态下发拦截指令;
S2:进行准实时统计限流,将用户请求作为原始数据,先本地聚合,减少数据量,再进行全局的聚合,得到最后的统计结果;
S3:通过准实时的统计以及请求许可消费状态控制流量,若用户流量超过了限制则下发拦截指令。
优选的,所述S2中的统计方式为本地即时统计。
优选的,所述本地即时统计方式包括:基础统计数据方式和增量统计数据方式
优选的,所述S2中的聚合步骤包括:
Q1:以用户提交的每个数据处理请求作为数据源,记录其请求时间、统计维度;
Q2:初次聚合,按时间切片1秒的间隔在内存中直接聚合从上次聚合来的数据;
Q3:全局聚合,以时间切片值和所有统计维度取hash值,将上次聚合来的数据分发到对应的数据处理节点完成最终的聚合。
优选的,所述S2中的准实时的统计中,基于TCP通讯协议进行准实时统计。
优选的,所述S2中的准实时的统计,其通讯协议通过UDP通讯代替TCP通讯协议、内存计算进行提高统计效率,且统计数据在内存中计算完成。
优选的,所述准实时统计系统时,处理一次统计时间小于2毫秒。
一种基于准实时统计的分布式流量控制系统,应用于上述的方法,包括:分时数据传递模块、数据聚合模块和路由调度模块;
所述分时数据传递模块负责提供缓冲区,用以接受上游数据的推送,另外启动一个线程,源源不断地将现有数据成批推向下游处理节点,每次推送之前生成一个空的缓冲区替换旧的缓冲区用以接受新的数据;
所述数据聚合模块负责对数据进行聚合计算操作;
所述路由调度模块,用于计算上游和下游的数据往哪里传输,用于本地处理或通过网络推送到其它节点处理。
优选的,所述接受上游数据的推送需要另外启动一个线程,将现有数据成批推向下游处理节点,每次推送之前生成一个空的缓冲区替换旧的缓冲区用以接受新的数据。
优选的,所述数据聚合模块聚合操作包括两种聚合模式:
增量数据聚合:将上游收到的数据聚合之后直接往下游推送;
按时间切片的存量数据和增量数据聚合:该模式保存一个基础数据,然后在其基础上不断叠加增量数据,当基础数据满足一定条件时候触发事件通知。
与现有技术相比,本发明的有益效果是:
1、该一种基于准实时统计的分布式流量控制方法及系统,对于流量突然增大的情况,令牌桶算法会直接把超过当前节点所拥有令牌数量的请求挡回去,这在用于限流场景的时候没有太大的问题,但是对于限制用户使用量的场景下,用户可能会觉得疑惑,为什么自己的使用量还没消耗完毕,就出现了异常。而在本方案中对于该场景则是做乐观处理,只针对每个节点增加一个最大请求数量的限制而不直接拒绝,所以有可能出现请求量稍微超过用户许可数量的情况,但是这种情况可以通过负载均衡来减轻影响,而不会影响用户的使用;
2、对于令牌桶算法限流:体现在一个时间切片内,当主节点的令牌下发完毕后,不同的数据处理节点的消费进度可能不一样,先消费完令牌的数据处理节点已经拒绝后续请求了,但是未消费完令牌的数据处理节点还能接受请求,反映到用户的效果就是用户还没消费完自己的配额,但是已经出现了请求随机拒绝的情况。例如用户每分钟允许提交1万次请求,每次下发1000个令牌,3个节点消费到最后,肯定是每个节点剩下1000个令牌,这时先消费完的数据处理节点就不能再接受新的请求了,用户的权益就受到了影响。
附图说明
图1为本发明中现有的令牌桶算法限流方案示意图;
图2为本发明基于准实时统计限流方案示意图;
图3为本发明中基于准实时统计限流方案的聚合计算过程示意图;
图4为本发明中基于准实时统计限流方案的数据处理流程示意图;
图5为本发明中基于准实时统计限流方案的故障恢复处理示意图;
图6本发明实施例中流量突然增大情况处理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
现有技术中,在一些分布式系统中,可能需要针对每个用户进行限流,例如API网关,因此通常API网关上都会增加一个模块用以进行流量控制。现在比较流行的流量控制算法是令牌桶,但是这种方法并不能均匀地分配令牌,因为每次下发的令牌都是批量下发的,有可能会造成用户在某些数据处理节点上有足够令牌能访问,而在某些数据处理节点上因为缺乏令牌而无法访问的情况,这在大多数场景下不是问题,例如仅仅是为了减轻系统压力,但是在某些场景下不能满足需求,例如用户已按使用频率付费每分钟1万次,在还没将请求许可消费完之前就拒绝访问是不合理的。
发明人发现在当今的互联网应用中,单机数据处理系统已经很难满足性能需求了,高可用、横向扩展能力几乎是所有应用的标准配置。而如何针对这些分布式系统的所有数据处理节点进行全局的流量控制,避免系统压力过大,或者是控制用户访问频率,又是一个非常常见的需求。
如图1-6所示,一种基于准实时统计的分布式流量控制方法,包括以下步骤:
S1:对当前的访问状态进行统计,并根据统计结果和请求许可消费状态下发拦截指令;
S2:进行准实时统计限流,将用户请求作为原始数据,先本地聚合,减少数据量,再进行全局的聚合,得到最后的统计结果;
S3:通过准实时的统计以及请求许可消费状态控制流量,若用户流量超过了限制则下发拦截指令。
如图2所示,S2中的聚合步骤包括:
Q1:以用户提交的每个数据处理请求作为数据源,记录其请求时间、统计维度;
Q2:初次聚合,按时间切片1秒的间隔在内存中直接聚合从上次聚合来的数据;具体先本地聚合,再写入到本地统计数据内,进行跨节点聚合,同时根据hash值进行分发,并根据请求的特征分发的全局一致的节点进行全局聚合,同时进行全局统计;
Q3:全局聚合,以时间切片值和所有统计维度取hash值,将上次聚合来的数据分发到对应的数据处理节点完成最终的聚合,并根据许可是否消耗完毕来判断是否需要下发拦截指令,以实现限流的目的。
S2中的准实时的统计,通讯协议为TCP通讯协议,其通讯协议还可以通过UDP通讯代替TCP通讯协议、内存计算进行提高统计效率,且统计数据在内存中计算完成。
如图4所示,一种基于准实时统计的分布式流量控制系统,用于使用上述实施例中的基于准实时统计的方法,包括:分时数据传递模块、数据聚合模块和路由调度模块;
分时数据传递模块负责提供缓冲区,接受上游数据的推送需要另外启动一个线程,源源不断地将现有数据成批推向下游处理节点,每次推送之前生成一个空的缓冲区替换旧的缓冲区用以接受新的数据。
数据聚合模块负责对数据进行聚合计算操作,其中主要包含两种聚合模式,一种是增量数据聚合,将上游收到的数据聚合之后直接往下游推送;一种是按时间切片的存量数据和增量数据聚合,该模式保存一个基础数据,在其基础上不断叠加增量数据,当基础数据满足一定条件时候触发事件通知。
路由调度模块,用于计算上游和下游的数据往哪里传输,用于本地处理或通过网络推送到其它节点处理。
如图4,基于准实时统计限流方案的数据处理时,将源数据作为上游数据提交到双缓冲区,进行交替使用,然后再缓冲去内进行数据处理,并通过事先设定好的统计策略记性判定其是否为最终统计节点,然后再通过其增量数据统计和基础数据进行合并,达到统计阈值,按照事件触发策略实现流量拦截。
可以很容易地看出,系统中的几个主要流程的特点都是“收到数据经过简单处理后马上传递到下游处理节点”,并具有进行增量数据统计的能力,这也是其为什么其可以对用户行为进行快速响应的根本原因。
通过本实施例,在应对以下情况:
1、流量突然增大的情况:
对于流量突然增大的情况,令牌桶算法会直接把超过当前节点所拥有令牌数量的请求挡回去,这在用于限流场景的时候没有太大的问题,但是对于限制用户使用量的场景下,用户可能会觉得疑惑,为什么自己的使用量还没消耗完毕,就出现了异常。而在本方案中对于该场景则是做乐观处理,只针对每个节点增加一个最大请求数量的限制而不直接拒绝,所以有可能出现请求量稍微超过用户许可数量的情况,但是这种情况可以通过负载均衡来减轻影响,而不会影响用户的使用。如图6为流量突然增大情况处理。
2、使用量误差:
对于令牌桶算法限流:体现在一个时间切片内,当主节点的令牌下发完毕后,不同的数据处理节点的消费进度可能不一样,先消费完令牌的数据处理节点已经拒绝后续请求了,但是未消费完令牌的数据处理节点还能接受请求,反映到用户的效果就是用户还没消费完自己的配额,但是已经出现了请求随机拒绝的情况。例如用户每分钟允许提交1万次请求,每次下发1000个令牌,3个节点消费到最后,肯定是每个节点剩下1000个令牌,这时先消费完的数据处理节点就不能再接受新的请求了,用户的权益就受到了影响。
对于本方案:体现在一个时间切面内,当请求许可接近消耗完毕时,由于准实时统计的时间差,用户的请求的使用量可能会稍微超出配额,这主要取决于用户请求的速率。本方案经优化后处理一次统计只需要2毫秒以内,即是说2毫秒以内就可以判断用户请求是否超过了限制,那么用户如果在超限临界点的2毫秒以内提交的所有请求都会直接通过,即为使用量的误差。例如一个集群存在3个数据处理节点,用户每分钟允许提交100万次请求,用户的访问速率是1万次/秒,平均1毫秒10次,那么用户在1分钟内访问到接近100万次左右的时候,有可能出现的使用量误差为2毫秒x10次/毫秒x3节点=60次的超额使用,这相较于每分钟100万次的请求来说影响是足够小的。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (10)

1.一种基于准实时统计的分布式流量控制方法,其特征在于,包括以下步骤:
S1:对当前的访问状态进行统计,并根据统计结果和请求许可消费状态下发拦截指令;
S2:进行准实时统计限流,将用户请求作为原始数据,先本地聚合,减少数据量,再进行全局的聚合,得到最后的统计结果;
S3:通过准实时的统计以及请求许可消费状态控制流量,若用户流量超过了限制则下发拦截指令。
2.根据权利要求1所述的方法,其特征在于:所述S2中的统计方式为本地即时统计。
3.根据权利要求2所述的方法,其特征在于:所述本地即时统计方式包括:基础统计数据方式和增量统计数据方式。
4.根据权利要求1所述的方法,其特征在于:所述S2中的聚合步骤包括:
Q1:以用户提交的每个数据处理请求作为数据源,记录其请求时间、统计维度;
Q2:初次聚合,按1秒的间隔在内存中直接聚合从上次聚合来的数据;
Q3:全局聚合,以时间切片值和所有统计维度取hash值,将上次聚合来的数据分发到对应的数据处理节点完成最终的聚合。
5.根据权利要求1所述的方法,其特征在于:所述S2中的准实时的统计中基于TCP通讯协议进行准实时统计。
6.根据权利要求4所述的方法,其特征在于:所述S2中的准实时的统计中的通讯协议通过UDP通讯代替TCP通讯协议,且统计数据在内存中计算完成。
7.根据权利要求4所述的方法,其特征在于:所述准实时统计系统时,处理一次统计时间小于2毫秒。
8.一种基于准实时统计的分布式流量控制系统,应用于权利要求1-7任一项所述的方法,其特征在于,包括:分时数据传递模块、数据聚合模块和路由调度模块;
所述分时数据传递模块负责提供缓冲区,用以接受上游数据的推送;
所述数据聚合模块负责对数据进行聚合计算操作;
所述路由调度模块,用于计算上游和下游的数据传输,用于本地处理或通过网络推送到其它节点处理。
9.根据权利要求8所述的系统,其特征在于:所述接受上游数据的推送需要另外启动一个线程,将现有数据成批推向下游处理节点,每次推送之前生成一个空的缓冲区替换旧的缓冲区用以接受新的数据。
10.根据权利要求8所述的系统,其特征在于:所述数据聚合模块聚合操作包括两种聚合模式:
增量数据聚合:将上游收到的数据聚合之后直接往下游推送;
按时间切片的存量数据和增量数据聚合:保存一个基础数据,在其基础上不断叠加增量数据,当基础数据满足设定条件时触发事件通知。
CN202311663218.0A 2023-12-06 2023-12-06 基于准实时统计的分布式流量控制方法及系统 Pending CN117857458A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311663218.0A CN117857458A (zh) 2023-12-06 2023-12-06 基于准实时统计的分布式流量控制方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311663218.0A CN117857458A (zh) 2023-12-06 2023-12-06 基于准实时统计的分布式流量控制方法及系统

Publications (1)

Publication Number Publication Date
CN117857458A true CN117857458A (zh) 2024-04-09

Family

ID=90531018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311663218.0A Pending CN117857458A (zh) 2023-12-06 2023-12-06 基于准实时统计的分布式流量控制方法及系统

Country Status (1)

Country Link
CN (1) CN117857458A (zh)

Similar Documents

Publication Publication Date Title
CN110276182B (zh) Api分布式限流的实现方法
US6961341B1 (en) Adaptive bandwidth throttling for network services
CN110858843B (zh) 业务请求处理方法、装置及计算机可读存储介质
EP3264723B1 (en) Method, related apparatus and system for processing service request
US20200050479A1 (en) Blockchain network and task scheduling method therefor
CN112445857A (zh) 一种基于数据库的资源配额管理方法和装置
US20070058651A1 (en) Method, system and program product for setting a transmission rate in a network
US20070265976A1 (en) License distribution in a packet data network
EP2503762B1 (en) Method, apparatus and system for cache collaboration
CN111641563A (zh) 基于分布式场景的流量自适应方法与系统
CN115277577A (zh) 数据处理方法、装置、计算机设备和计算机可读存储介质
WO2019047345A1 (zh) 动态密码发送策略的生成方法和动态密码发送方法
CN112448987A (zh) 一种熔断降级的触发方法、系统和存储介质
CN111897659B (zh) 业务处理频率的控制方法、系统、装置、电子设备
CN114371931A (zh) 服务集群资源分配方法、装置及计算机设备
CN116192752B (zh) 业务流量控制方法、装置、电子设备及存储介质
CN117857458A (zh) 基于准实时统计的分布式流量控制方法及系统
CN115665054A (zh) 带宽分配的方法和模块、以及数据传输管理系统
TWI766387B (zh) 一種具延遲感知負載平衡的反向代理方法和存儲裝置
CN113271335A (zh) 一种管控云计算终端和云服务器运作的系统
CN113391927A (zh) 一种业务事件的处理方法、装置、系统及存储介质
CN112312165A (zh) 视频下发方法、装置及计算机可读存储介质
CN114979979B (zh) 一种消息处理的方法及其消息处理系统
CN114095201B (zh) 基于边缘计算的流量控制方法及装置,电子设备,存储介质
WO2024131421A1 (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