配置流控规则的原理是监控应用或服务流量的QPS指标,当指标达到设定的阈值时立即拦截流量,避免应用被瞬时的流量高峰冲垮,从而保障应用高可用性。本文介绍如何配置管理流控规则,以及两种常用场景的流控配置规则。

前提条件

背景信息

流量控制在网络传输中是一个常用的概念,常用于调整网络包的发送数据。系统需处理的请求是随机不可控的,而系统的处理能力是有限的,因此就需要根据系统的处理能力对流量进行控制。

功能入口

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。
  2. 在左侧导航栏,选择治理中心 > 应用治理
  3. 在右侧的应用卡片里选择对应的应用,单击卡片进入应用。
  4. 进入应用之后,选择以下任意一种方法新建流控规则:
    • 在左侧导航栏单击应用概览,然后点击QPS TOP表格的操作列中的流控或者隔离
    • 在左侧导航栏单击接口详情,在接口概览页面单击资源卡片右上角的新增防护规则防护规则管理,然后在新增规则或者管理规则对话框中单击流控规则
    • 在左侧导航栏点击流量治理,在流量防护流控规则Tab页点击新增流控规则按钮。
    • 在左侧导航栏单击数据库治理,单击SQL详情页签,单击资源卡片右上角新增防护规则防护规则管理,在管理规则或者管理规则页面单击流控规则页签,在页面左上角单击新增流控规则
  5. 新建流控规则对话框中配置规则信息,参数说明请参见更多信息
  6. 单击新建

常用场景1:削峰填谷,使流量匀速通过

请求流量具有波峰波谷的特点,流控的原理是将前面的峰值流量延迟(排队时长)到后面再处理,既能最大化满足所有请求,又能保证用户体验。详情请参见削峰填谷

新增流控防护规则对话框中配置以下规则信息:

  • 流控效果选择排队等待
  • 配置匀速模式下请求单机QPS阈值为5。
  • 等待时长为5s。

系统则每200 ms处理一条请求,多余的处理任务将排队;同时设置了等待时长为5s,则预计排队时长超过5s的处理任务将快速失败,直接返回默认流控信息,如文本、静态页面等。

常用场景2:预热启动避免大流量冲击

流控的原理是在流量入口处控制流量,让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,以便系统可以预热。最适合突发流量的场景。详情请参见Warm Up(冷启动)

新增流控防护规则对话框中配置以下规则信息:

  • 流控效果选择预热启动
  • 单机QPS阈值为60。
  • 预热时间为2s。

预热流控方式下,默认会从设置的QPS阈值的1/3开始慢慢往上增加至QPS设置值。本示例中,当入口的QPS超过20(即60÷3)时,会在预热的2s内缓慢增长至60。

更多信息

新建流控规则页面参数说明如下:

流控规则说明
参数 描述
接口名称 待流控的资源名称。
单机QPS 阈值 触发对流控接口的统计维度对象的QPS阈值。
流控效果 选择流控方式来处理被拦截的流量。
  • 快速失败:达到阈值时,立即拦截请求。按照应用系统设置中的适配模块配置信息,进行内容返回。
  • 预热启动:需设置具体的预热时间。详情请参见Warm Up(冷启动)

    如果系统在此之前长期处于空闲的状态,当流量突然增大的时候,该方式会让处理请求的速率缓慢增加,经过设置的预热时间以后,到达系统处理请求速率的设定值。默认会从设置的QPS阈值的1/3开始慢慢往上增加至设置的QPS值,多余请求会按照快速失败处理。

  • 排队等待:请求匀速通过,允许排队等待,通常用于请求调用削峰填谷等场景。需设置具体的超时时间,达到超时时间后请求会快速失败。 详情请参见削峰填谷
是否开启 打开开关表示启用该规则,关闭开关表示禁用该规则。开关修改之后会立即生效。