google的熔斷保護策略
熔斷即不向服務端發(fā)送請求,直接認為獲取不到數(shù)據(jù)。
客戶端根據(jù)以下公式計算熔斷概率:
設定滑動窗口,比如2分鐘,每次計算熔斷概率時都統(tǒng)計一下過去2分鐘的
requests:每服務端發(fā)送了多少次請求
accepts:服務端成功響應了多少次
所以requests-accepts表示請求失敗的次數(shù)
熔斷概率公式的核心是,即過去一段時間請求失敗的概率,以此來作為熔斷概率。因為失敗率越高,說明服務端負載越高,應該減少請求量,所以熔斷概率應該增大。
分母加1是為了防止除0異常。
系數(shù)k越大,熔斷概率越小,小到可能為負數(shù),但概率總不能為負數(shù)吧,所以最外層的max(0 就是用來保證概率非負的。