官方文檔
系統(tǒng)自適應(yīng)限流

Sentinel 系統(tǒng)自適應(yīng)限流從整體維度對應(yīng)用入口流量進行控制,結(jié)合應(yīng)用的 Load、CPU 使用率、總體平均 RT、入口 QPS 和并發(fā)線程數(shù)等幾個維度的監(jiān)控指標,通過自適應(yīng)的流控策略,讓系統(tǒng)的入口流量和系統(tǒng)的負載達到一個平衡,讓系統(tǒng)盡可能跑在最大吞吐量的同時保證系統(tǒng)整體的穩(wěn)定性。
系統(tǒng)規(guī)則是針對應(yīng)用整體維度的,而不是資源維度的,并且僅對入口流量生效,入口流量指的是進入應(yīng)用的流量(EntryType.IN),比如Web服務(wù)或Dubbo服務(wù)端接收的請求都屬于入口流量。
流控規(guī)則,熱點規(guī)則以及系統(tǒng)規(guī)則,主要區(qū)分在于粒度的大小。系統(tǒng)規(guī)則針對的是整個應(yīng)用的入口流量,流控規(guī)則則是針對應(yīng)用的資源(API),而熱點規(guī)則針對的是更細粒度的資源(API)請求的參數(shù)。
系統(tǒng)規(guī)則支持五種模式
Load自適應(yīng)(僅對 Linux/Unix-like 機器生效):系統(tǒng)的 load1 作為啟發(fā)指標,進行自適應(yīng)系統(tǒng)保護。當系統(tǒng) load1 超過設(shè)定的啟發(fā)值,且系統(tǒng)當前的并發(fā)線程數(shù)超過估算的系統(tǒng)容量時才會觸發(fā)系統(tǒng)保護(BBR 階段)。系統(tǒng)容量由系統(tǒng)的 maxQps * minRt 估算得出。設(shè)定參考值一般是 CPU cores * 2.5。
CPU usage(1.5.0+ 版本):當系統(tǒng) CPU 使用率超過閾值即觸發(fā)系統(tǒng)保護(取值范圍 0.0-1.0),比較靈敏。
平均 RT:當單臺機器上所有入口流量的平均 RT 達到閾值即觸發(fā)系統(tǒng)保護,單位是毫秒。
并發(fā)線程數(shù):當單臺機器上所有入口流量的并發(fā)線程數(shù)達到閾值即觸發(fā)系統(tǒng)保護。
入口 QPS:當單臺機器上所有入口流量的 QPS 達到閾值即觸發(fā)系統(tǒng)保護。