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

文档序号:1007755 发布日期:2020-10-23 浏览:15次 >En<

阅读说明:本技术 一种流量自适应限流系统及其控制方法 (Flow self-adaptive current limiting system and control method thereof ) 是由 王磊 邓江 于 2020-07-16 设计创作,主要内容包括:一种流量自适应限流系统,包括:接口模块:用于流量发起,表示公网入口流量。接入模块:用于完成流量数据采集、控制、上传;微服务业务应用模块:用于表示业务应用及复杂链路流量情况。所述接入模块包括网关、植入于网关的流量控制装置、控制平台;所述网关用于配置流量控制装置,所述流量控制装置用于控制流量、采集数据,所述控制平台接收流量控制装置中的数据,并将规则下发到流量控制装置中。相较于传统的分布式系统,本发明提供的技术方案能够主动调节限流,操作更简单,减小了人工操作工作量,且增加对系统的全局保护。(A flow adaptive flow limiting system, comprising: an interface module: the method is used for traffic initiation and represents the public network inlet traffic. An access module: the flow data acquisition, control and uploading device is used for completing flow data acquisition, control and uploading; the microservice service application module: the method is used for representing service application and complex link flow conditions. The access module comprises a gateway, a flow control device implanted in the gateway and a control platform; the gateway is used for configuring the flow control device, the flow control device is used for controlling flow and collecting data, and the control platform receives the data in the flow control device and issues rules to the flow control device. Compared with the traditional distributed system, the technical scheme provided by the invention can actively adjust the current limit, is simpler to operate, reduces the workload of manual operation, and increases the global protection of the system.)

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

技术领域

本发明涉及互联网技术领域,具体涉及一种流量自适应限流系统及其控制方法。

背景技术

随着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倍,且5分钟AVG[RT]>15分钟AVG[RT];1分钟AVG[RT]>5分钟AVG[RT]时表示系统负载过高且有恶化的风险确发自动限流,窗口大小为原窗口大小×调整系数A。当1,5分钟AVG[RT]小于前次时且当前正发生流控限制时,窗口自动扩大,窗口为原窗口大小×调整系数B,调整系数A、调整系数B和系数N可由控制台进行配置。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种网络拥塞控制方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!