一种流量自适应限流系统及其控制方法技术方案

技术编号:26040864 阅读:28 留言:0更新日期:2020-10-23 21:20
一种流量自适应限流系统,包括:接口模块:用于流量发起,表示公网入口流量。接入模块:用于完成流量数据采集、控制、上传;微服务业务应用模块:用于表示业务应用及复杂链路流量情况。所述接入模块包括网关、植入于网关的流量控制装置、控制平台;所述网关用于配置流量控制装置,所述流量控制装置用于控制流量、采集数据,所述控制平台接收流量控制装置中的数据,并将规则下发到流量控制装置中。相较于传统的分布式系统,本发明专利技术提供的技术方案能够主动调节限流,操作更简单,减小了人工操作工作量,且增加对系统的全局保护。

【技术实现步骤摘要】
一种流量自适应限流系统及其控制方法
本专利技术涉及互联网
,具体涉及一种流量自适应限流系统及其控制方法。
技术介绍
随着pc,手机,平板等各类电子设备的爆炸式增长,互联网的网络规模也迅速扩大,用户的行为和网络应用也越来越多样化。网络上很多非关键的业务应用抢占了我们的带宽,使得很多正常的关键业务和应用受到了影响。当用户在家里正常览网页时,却出现网络卡顿等网络质量降低的情况时,用户的体验会大打折扣。为了提升用户体验,保障网络物理通道的畅通和正常业务。于是便有了流量控制。目前常用的流控场景有针对单用户的流量控制,该场景主要是在用户接入路由器上,或者在BRAS/BAS上进行控制。但是如果要对整个网络按协议进行流量控制,则一般需要在城域网或者省网的出口处进行流控设备的布置。使用传统的单节点流控的方式,一方面从物理上很难做到把所有的流量都汇聚到一台设备上,另一方面使用单台设备对几百数千G的流量按照协议和用户进行流控也是难以做到的。目前常用的做法是将整体阈值按照设备数量进行均分,但是现网流量的分布一般是不均匀的,而且经常波动,整体来看,使用该方法进行流控误差较大,甚至会影响正常业务。且限流无法主动调节。分布式系统发生流量超限触发限流时,流量限定需要手工设置且设置过程是相对盲目的,需要多次调整才能到一个预估的性能瓶颈值。因此,专利公开号为CN106921584A公开了一种分布式网络流量控制方法,其中,分布式网络中包括管理节点和与其连接的多个流量控制节点,其所述方法包括:流量控制节点对对应通道进行流量信息采集,当上报周期到达之后,各个流量控制节点将各个对应通道的信息发送到管理节点,管理节点收到各个流量控制节点发送的对应通道的信息之后,进行统计分析;管理节点统计分析后,判断对应通道是否有该通道的新流量阈值产生,并返回给流量控制节点。通过本专利技术,动态的调整各个出口网络的流量控制阈值,而不需要人工去干预。但上述专利中还包含以下缺陷:1.限流操作复杂。微服务业务应用节点多,链路长。一个核心链路通常十几、几十个应用。限流功能通常分散在各个公司组织、各业务层、各应用节点上,操作起来非常复杂。2.限流只保护局部。在大量服务节点组成的分布式微服务架构中,叶子节点触发限流并不能保护支干,流量依旧会在整个服务节点中贯穿。性能处于饱和,业务却不成功。
技术实现思路
为了解决上述问题,本专利技术提供了一种流量自适应限流系统及其控制方法,能够主动调节限流,操作简单,减小了人工操作工作量,增加对系统的全局保护。本专利技术的技术方案如下所示:一种流量自适应限流系统,包括:接口模块(即SDK/API):用于流量发起,表示公网入口流量;接入模块:用于完成流量数据采集、控制、上传;微服务业务应用模块:用于表示业务应用及复杂链路流量情况;所述接入模块包括网关、植入于网关的流量控制装置、控制平台;所述网关用于配置流量控制装置,所述流量控制装置用于控制流量、采集数据,所述控制平台接收流量控制装置中的数据,并将规则下发到流量控制装置中。优选的,所述流量控制装置为基于开源的限流器Sentinel实现的规则控制模块。优选的,所述微服务业务应用模块中的微服务架构共设有三条流量路径。本专利技术还提供一种流量自适应限流控制方法,使用到一种流量自适应限流系统,包括以下步骤:S1:设置限流初始值;S2:通过流量控制装置采集流量数据,判断当前的流量是否超过限制;S3:在当前的流量超过限制时,返回特定的Code表示流量超限;S4:在微服务业务应用模块中的窗口接收到Code后,启动自动限流功能。优选的,所述步骤S4中自动限流的策略为:当窗口出现预先设置的Code时,触发自动限流,窗口的QPS根据流量控制装置采集的数据确定。优选的,所述窗口的QPS的计算公式为:QPS[当前窗口]=QPS[总流量]-QPS[预先设置的Code]。窗口的QPS即当前窗口每秒的即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。优选的,所述窗口的QPS是否变动根据在限流窗口处流量控制装置采集到的平均时延来确定。优选的,判断窗口的大小是否进行变动的具体过程为:若采集到的15分钟内的平均时延大于前次15分钟内的平均时延的N倍,5分钟内的平均时延>15分钟内的平均时延,1分钟内的平均时延>5分钟内的平均时延,则表示系统负载过高且有恶化的风险,此时触发自动限流,窗口的QPS调整为原窗口的QPS×调整系数A;当1分钟内的平均时延<前次1分钟内的平均时延,5分钟内的平均时延小于前次5分钟内的平均时延,且当前正在发生流量限制时,则窗口自动扩大,窗口的QPS为原窗口的QPS×调整系数B。优选的,所述的调整系数A和调整系数B的具体值均由控制平台确定。本专利技术的有益效果为:相较于传统的分布式系统,本专利技术提供的技术方案能够主动调节限流,操作更简单,减小了人工操作工作量,且增加对系统的全局保护。附图说明图1为本专利技术实施例中系统的组成架构图。具体实施方式下面将结合说明书附图对本专利技术的实施例进行说明。一种流量自适应限流系统,包括用于流量发起,表示公网入口流量的接口模块(可使用SDK/API);用于完成流量数据采集、控制、上传的接入模块:用于表示业务应用及复杂链路流量情况的微服务业务应用模块,其中接入模块包括网关、植入于网关的流量控制装置、控制平台;其中网关用于配置流量控制装置,流量控制装置用于控制流量、采集数据,控制平台接收流量控制装置中的数据,用于接收流量控制装置中的数据,并将规则下发到流量控制装置中。流量控制装置可以采用基于开源的限流器Sentinel实现的规则控制模块。如图1所示,基于上述系统,本专利技术实施例还提供了一种流量自适应限流控制方法,具体如下:由网关配置流量控制装置后可以完成基础的流量控制(比如QPS,线程数等),数据采集。数据上传到流控控制台。QPS,即每秒查询率(Queries-per-second)是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。以某窗口QPS为例,默认限流值初始值为Integer.MAX_VALUE。同时采集QPS当前流量数据,若配置了限流,当发生流量超限制时会返回特定的Code表示流量超限。窗口设置在微服务业务应用模块中,当该窗口的入口处流量出现流控特定的Code时,触发自动限流。窗口大小即窗口的QPS,其依据采集的数据确定。公式为:QPS[当前窗口]=QPS[总流量]-QPS[预先设置的Code]。例如:B1-2-1路径流量为300QPS时,当前窗口=300QPS-200QPS=100QPS,系统自动将窗口大小调整为该值。采集限流的接口最近1,5,15分钟AVG[RT](即平均时延),当最近15分钟AVG[RT]大于前次15分钟AVG[RT]的N本文档来自技高网
...

【技术保护点】
1.一种流量自适应限流系统,其特征在于,包括:/n接口模块:用于流量发起,表示公网入口流量;/n接入模块:用于完成流量数据采集、控制、上传;/n微服务业务应用模块:用于表示业务应用及复杂链路流量情况;/n所述接入模块包括网关、植入于网关的流量控制装置、控制平台;/n所述网关用于配置流量控制装置,所述流量控制装置用于控制流量、采集数据,所述控制平台接收流量控制装置中的数据,并将规则下发到流量控制装置中。/n

【技术特征摘要】
1.一种流量自适应限流系统,其特征在于,包括:
接口模块:用于流量发起,表示公网入口流量;
接入模块:用于完成流量数据采集、控制、上传;
微服务业务应用模块:用于表示业务应用及复杂链路流量情况;
所述接入模块包括网关、植入于网关的流量控制装置、控制平台;
所述网关用于配置流量控制装置,所述流量控制装置用于控制流量、采集数据,所述控制平台接收流量控制装置中的数据,并将规则下发到流量控制装置中。


2.根据权利要求1所述的流量自适应限流系统,其特征在于,所述流量控制装置为基于开源的限流器Sentinel实现的规则控制模块。


3.根据权利要求1所述的流量自适应限流系统,其特征在于,所述微服务业务应用模块中的微服务架构共设有三条流量路径。


4.一种流量自适应限流控制方法,使用权利要求1所述的一种流量自适应限流系统,其特征在于,包括以下步骤:
S1:设置限流初始值;
S2:通过流量控制装置采集流量数据,判断当前的流量是否超过限制;
S3:在当前的流量超过限制时,返回特定的Code表示流量超限;
S4:在微服务业务应用模块中的窗口接收到Code后,启动自动限流功能。


5.根据权利要求4所述的流量自适应限流方法,其特征...

【专利技术属性】
技术研发人员:王磊邓江
申请(专利权)人:浙江百应科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1