--- hide: -toc --- # 创建流控规则 流控规则的原理是监控应用或服务流量的 QPS 指标,当指标达到阈值时根据预先设定的规则对请求流量进行控制,防止应用因短时间内无法处理过多流量而崩溃。使用流控规则后,系统可以在接下来的空闲期间逐渐处理堆积的请求,当指标重新恢复到阈值以下后,恢复正常的流量请求控制。 视频教程:[Sentinel 流控规则](../../../../videos/skoala.md#sentinel) 创建流控规则的方式如下: 1. 点击目标托管注册中心的名称,然后在左侧导航栏点击 __微服务列表__ ,在最右侧点击更多按钮选择 __治理__ 。 > 注意需要治理的微服务在 __是否可以治理__ 一栏应该显示为`是`,才能进行后续步骤。 ![微服务列表](https://docs.daocloud.io/daocloud-docs-images/docs/zh/docs/skoala/images/gov00.png) 2. 选择 __流控规则__ ,然后在右侧点击 __创建流控规则__ 。 ![微服务列表](https://docs.daocloud.io/daocloud-docs-images/docs/zh/docs/skoala/images/gov01.png) 3. 参考下列说明填写规则配置,并在右下角点击 __确定__ 。 - 资源名:需要控制哪个资源的流量就填写哪个资源的名称,例如当前服务下的某个 API 接口、函数、变量等。 - 来源应用:Sentinel 可以针对调用者进行限流,只有当请求来自特定的调用者时才启用流控规则,来自其他调用者的请求不受此流控规则的约束。默认为 `default`,表示不区分来源,限制所有的调用者发来的请求。 - 阈值类型——QPS:QPS 指每秒钟的请求数量。当资源每秒内响应的请求达到所设置的阈值时,启用流控规则开始限制服务接收的请求。 - 阈值类型——线程数:调用该接口的线程数达到一定阈值时进行限流。 - 是否集群:是否将所设置的规则应用于服务所在的集群范围。 - 流控模式——直接:直接对上方`资源名`字段填写的资源进行流量控制。 - 流控模式——关联:在 **同时调用** 资源及其关联资源时,如果对 **关联资源** 的调用达到上方设定的阈值,则对原资源进行流量控制。关联模式适用于在资源优先级不同的情况下,**对优先级较低的资源实施限流,以保护优先级更高的资源**。 - 流控模式——链路:如果上方`资源名`字段填写的资源的 QPS 超过设定的阈值时,对入口资源进行流量控制。入口资源即该调用链路入口的上下文名称。 - 流控效果——快速失败:当资源响应的请求达到所设置的阈值时,直接拒绝后续的调用请求。阈值类型必须需设成 QPS,否则无效。 - 流控效果——WARM_UP:在设定的预热时间内逐渐将 QPS 增加到设定的阈值,之后一直维持在该阈值。阈值类型必须需设成 QPS,否则无效。这样可以缓慢增加通过的流量,逐渐预热系统,防止空闲系统突然涌入大量流量而被压垮。 - 流控效果——排队等待:QPS 超过阈值时后续请求排队等待响应,超过所设定的超时时间(单位:毫秒)后请求失败。阈值类型必须需设成 QPS,否则无效。适用于处理间隔性突发流量,在某一秒有大量请求涌入,而接下来的几秒则处于空闲状态,例如消息队列。 ![微服务列表](https://docs.daocloud.io/daocloud-docs-images/docs/zh/docs/skoala/images/gov02.png) 4. 创建完成后可以在流控规则列表中查看新建的规则。在右侧点击更多按钮可以更新规则或者删除该规则。 ![流控规则列表](https://docs.daocloud.io/daocloud-docs-images/docs/zh/docs/skoala/images/gov03.png) 参阅视频教程:[Sentinel 流控规则](../../../../videos/skoala.md#sentinel)。