服務降級nginx
概念:服務降級,當服務器壓力劇增的狀況下,根據當前業務狀況及流量對一些服務和頁面有策略的降級,以此釋放服務器資源以保證核心任務的正常運行。算法
服務熔斷
若是某個目標服務調用慢或者有大量超時,此時,熔斷該服務的調用,對於後續調用請求,不在繼續調用目標服務,直接返回,快速釋放資源。若是目標服務狀況好轉則恢復調用。服務器
熔斷設計
三個模塊:熔斷請求判斷算法、熔斷恢復機制、熔斷報警異步
(1)熔斷請求判斷機制算法:使用無鎖循環隊列計數,每一個熔斷器默認維護10個bucket,每1秒一個bucket,每一個blucket記錄請求的成功、失敗、超時、拒絕的狀態,默認錯誤超過50%且10秒內超過20個請求進行中斷攔截。設計
(2)熔斷恢復:對於被熔斷的請求,每隔5s容許部分請求經過,若請求都是健康的(RT<250ms)則對請求健康恢復。日誌
(3)熔斷報警:對於熔斷的請求打日誌,異常請求超過某些設定則報警接口
服務限流
限流模式主要是提早對各個類型的請求設置最高的QPS閾值,若高於設置的閾值則對該請求直接返回,再也不調用後續資源。
隊列