配置流控规则的原理是监控应用或服务流量的QPS指标,当指标达到设定的阈值时立即拦截流量,避免应用被瞬时的流量高峰冲垮,从而保障应用高可用性。本文介绍如何配置和管理流控规则。
背景信息
流量控制在网络传输中是一个常用的概念,常用于调整网络包的发送数据。系统需处理的请求是随机不可控的,而系统的处理能力是有限的,因此就需要根据系统的处理能力对流量进行控制。流控规则的配置通常有以下场景:
新建流控规则
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。
在左侧导航栏中选择 。
单击流控规则页签,单击新增流控规则。
在新增流控防护规则对话框配置参数完成后,单击新增。
选择防护场景:
配置项
描述
接口名称
待流控的资源名称。
配置防护规则:
配置项
描述
是否集群流控
是否开启集群流控,即对集群内此资源的调用总量进行限制。
是否开启
打开开关表示启用该规则,关闭开关表示禁用该规则。
来源应用
该规则针对的来源应用,默认来源应用为
default
,代表不区分来源应用。统计维度
统计QPS的维度,包含以下三种维度:
当前接口:用于接口调用流控。该接口被来源应用调用次数超过阈值时,会对当前接口来自于来源应用的请求进行流控。
关联接口:用于资源争抢情况。当关联接口被来源应用调用QPS超过阈值时,会对当前接口来自于来源应用的请求进行流控。
例如,
read_db
和write_db
这两个资源分别代表读数据库和写数据库。可以为read_db
设置限流规则,将关联接口名设置为write_db
。当写数据库操作过于频繁时,读数据的请求会被限流。链路入口:用于应用内Call Stack调用流控情况。当Call Stack入口被来源应用调用QPS数超过阈值时,会对当前接口来自于来源应用的请求进行流控。
单机QPS阈值
应用或服务流量的QPS指标。
流控效果
流量控制的方式,包含以下三种方式:
快速失败:常规流控方式,当前接口超过设置阈值的流量,直接返回默认流控信息,如文本、静态页面等。
预热启动:适用于避免突增流量瞬间冲击系统的场景。请求流量会在预热时间内缓步增加至阈值量级,多余请求会直接拒绝。更多信息,请参见预热启动(Warm Up)。
排队等待:适用于流量匀速器场景。触发流控后,多余请求会按照顺序等待,达到超时时间后失败。更多信息,请参见削峰填谷。
配置限流行为:
选择接口类型后,单击新增行为配置Web行为或RPC行为。
配置成功后,新的隔离规则将出现在流控规则列表中。
管理规则
在规则列表中,您可以编辑、删除、启用、禁用、批量启用或批量禁用规则。
如需编辑规则,单击目标规则右侧操作列中的编辑,并按需修改规则内容。
如需删除规则,单击目标规则右侧操作列中的删除,并在对话框中单击确定。
如需启用或禁用规则,打开或关闭目标规则右侧状态列中的开关,并在对话框中单击确定。
如需批量启用或禁用规则,选中要操作的一个或多个规则,单击页面底部的批量开启或批量关闭,并在对话框中单击确定。