服務降級,服務熔斷,服務限流

服務降級nginx

概念:服務降級,當服務器壓力劇增的狀況下,根據當前業務狀況及流量對一些服務和頁面有策略的降級,以此釋放服務器資源以保證核心任務的正常運行。算法

  • 服務接口拒絕服務:頁面能訪問,可是添加刪除提示服務器繁忙。頁面內容也可在Varnish或CDN內獲取。
  • 頁面拒絕服務:頁面提示因爲服務繁忙此服務暫停。跳轉到varnish或nginx的一個靜態頁面。
  • 延遲持久化:頁面訪問照常,可是涉及記錄變動,會提示稍晚能看到結果,將數據記錄到異步隊列或log,服務恢復後執行。
  • 隨機拒絕服務:服務接口隨機拒絕服務,讓用戶重試,目前較少有人採用。由於用戶體驗不佳。

服務熔斷
若是某個目標服務調用慢或者有大量超時,此時,熔斷該服務的調用,對於後續調用請求,不在繼續調用目標服務,直接返回,快速釋放資源。若是目標服務狀況好轉則恢復調用。服務器

熔斷設計 
三個模塊:熔斷請求判斷算法、熔斷恢復機制、熔斷報警異步

(1)熔斷請求判斷機制算法:使用無鎖循環隊列計數,每一個熔斷器默認維護10個bucket,每1秒一個bucket,每一個blucket記錄請求的成功、失敗、超時、拒絕的狀態,默認錯誤超過50%且10秒內超過20個請求進行中斷攔截。設計

(2)熔斷恢復:對於被熔斷的請求,每隔5s容許部分請求經過,若請求都是健康的(RT<250ms)則對請求健康恢復。日誌

(3)熔斷報警:對於熔斷的請求打日誌,異常請求超過某些設定則報警接口

服務限流
限流模式主要是提早對各個類型的請求設置最高的QPS閾值,若高於設置的閾值則對該請求直接返回,再也不調用後續資源。
 隊列

相關文章
相關標籤/搜索