微服务引擎MSE

配置流控规则

2025-05-28 02:48:51

配置流控规则的原理是监控应用或服务流量的QPS指标,当指标达到设定的阈值时立即拦截流量,避免应用被瞬时的流量高峰冲垮,从而保障应用高可用性。

 

功能入口

a.     登录微服务治理控制台。

b.     在控制台左侧导航栏中选择应用治理。

c.     在应用治理页面的应用卡片页签单击目标应用卡片。

d.     在左侧导航栏选择流量防护 - 规则管理,在流控规则页签单击新增流控规则,然后在弹出的对话框中配置规则信息,参数说明如下。

e.     设置完成单击新增。

页面参数说明如下:

参数

描述

接口名称

指需要进行流量控制的资源名称,如接口名、方法名。

来源应用

该规则针对的来源应用,默认来源应用设为default,代表不区分来源应用。

 

统计维度

流控资源的不同调用方式及其相应的作用:

         当前接口:直接控制来自来源应用中调用来源的访问流量,如果来源应用为default则不区分调用来源。适用于流量均衡的场景。

         关联接口:控制当前资源的关联资源的流量。适用于资源争抢时,优先级高的接口可以保留足够的资源。

         链路入口:控制该资源所在的调用链路的入口流量。适用于预热启动时,避免大流量冲击。在选择入口后,需要继续配置入口资源,即该调用链路入口的上下文名称。适用于多个接口共享同一资源的场景。

单机QPS 阈值

单台机器设置的QPS限定值。

流控效果

被拦截的流量处理结果有以下3种:

         快速失败:当请求量超过预设的阈值时,立即停止请求处理并返回相应的内容。

         预热启动:设置一个预热时间,在此时间内如果系统处于低负载状态,请求处理速度将缓慢增加,直到达到预设的QPS阈值。超出预热时间的请求会按照快速失败处理。默认会从设置的QPS阈值的1/3开始限流,在预热时间内增加至设定值。

         排队等待:请求数量平均分配到每个时间段内,可以让系统处理请求更加均衡。如果某个时间段内请求量过大,会让其他时间段的请求处理速度变慢。需要设置一个超时时间,超时后请求会快速失败。

是否开启

表示规则创建后是否使能。

 

 

使用场景

常用场景1:当资源争抢时,需留足资源给优先级高的接口

为了确保提交的数据不丢失,我们将数据库读写分离,并给写库分配了更高的优先级。对于读取数据的请求,如果过于频繁,会对写入操作进行限流。

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

      统计维度选择关联接口。

      流控效果选择快速失败。

      关联接口阈值为10。

当写库操作的QPS超过10之后,读库操作会被限流以保证留足资源给写库操作,避免写库操作数据丢失。

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

采用流量控制的方法,在流量入口处进行控制,以缓慢增加的方式让流量通过,在一定时间内达到阈值上限,以便系统能够预热。这种方法最适合应对突发流量的场景

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

      统计维度选择链路入口。

      流控效果选择预热启动。

      单机QPS阈值为90。

      预热时间为10s。

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

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

请求流量具有波峰波谷的特点,流量管理的原理是将前期的高峰流量延迟到后期再处理,以最大化满足所有请求,并保证用户体验。

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

       统计维度选择当前接口。

       流控效果选择排队等待。

       配置匀速模式下请求单机QPS阈值为5。

       等待时长为5s。

abFUTMboSHR2