天天看點

【5分鐘背八股】漏桶限流算法是什麼?

漏桶算法的原理就像它的名字一樣,我們維持一個漏鬥,它有恒定的流出速度,不管水流流入的速度有多快,漏鬥出水的速度始終保持不變,類似于消息中間件,不管消息的生産者請求量有多大,消息的處理能力取決于消費者。

漏桶的容量=漏桶的流出速度*可接受的等待時長。在這個容量範圍内的請求可以排隊等待系統的處理,超過這個容量的請求,才會被抛棄。

在漏桶限流算法中,存在下面幾種情況:

  1. 當請求速度大于漏桶的流出速度時,也就是請求量大于目前服務所能處理的最大極限值時,觸發限流政策。
  2. 請求速度小于或等于漏桶的流出速度時,也就是服務的處理能力大于或等于請求量時,正常執行。

    漏桶算法有一個缺點:當系統在短時間内有突發的大流量時,漏桶算法處理不了。