天天看點

熔斷和限流

根據排隊理論,具有延遲的服務随着請求量的不斷提升,其平均響應時間也會迅速提升,為了保證服務的SLA,有必要控制機關時間的請求量。這就是限流為什麼愈發重要的原因。

qps限流

限制每秒處理請求數不超過門檻值。

并發限流

限制同時處理的請求數目。Java 中的 Semaphore 是做并發限制的好工具,特别适用于資源有效的場景。

老式電閘都安裝了保險絲,一旦有人使用超大功率的裝置,保險絲就會燒斷以保護各個電器不被強電流給燒壞。同理我們的接口也需要安裝上“保險絲”,以防止非預期的請求對系統壓力過大而引起的系統癱瘓,當流量過大時,可以采取拒絕或者引流等機制。

同樣在分布式系統中,當被調用的遠端服務無法使用時,如果沒有過載保護,就會導緻請求的資源阻塞在遠端伺服器上耗盡資源。很多時候,剛開始可能隻是出現了局部小規模的故障,然而由于種種原因,故障影響範圍越來越大,最終導緻全局性的後果。這種過載保護,就是熔斷器。