系统规则从整体维度对应用入口流量进行控制,根据应用负载、CPU使用率、总体平均RT、入口QPS和并发线程数等几个维度的监控指标,结合自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,保证系统在最大吞吐量的状态下稳定运行。
前提条件
背景信息
系统保护规则是应用整体维度的,而不是资源维度的,并且仅对入口流量生效。入口流量指的是进入应用的流量,例如Web服务或Dubbo服务端接收的请求。通过自定义埋点接入和通过注解接入的应用,入口流量为EntryType.IN
的逻辑被调用时产生的流量。配置系统规则的对象必须是入口流量,且默认接口为Dubbo或HSF才生效,如默认埋点的Dubbo、Servelet等,或者通过修改EntryType.IN
来让系统规则对该方法生效,EntryType.IN
的详情请参见通过自定义埋点接入和接入Spring应用。
- Load(仅对Linux、Unix-like机器生效):当系统Load 1超过阈值且系统当前的并发线程数超过系统容量时才会触发系统保护。
- CPU使用率:当系统CPU使用率超过阈值(0.0~1.0)即触发系统保护。
- RT:当单台机器上所有入口流量的平均RT达到阈值即触发系统保护。
- 线程数:当单台机器上所有入口流量的并发线程数达到阈值即触发系统保护。
- 入口QPS:当单台机器上所有入口流量的QPS达到阈值即触发系统保护。
对于一个应用来说,每种相同的系统保护规则最多只能存在一条,即一个应用最多配置五条系统保护规则。配置系统规则的原理请参见系统防护。