限流演算法 三種思路

2022-07-20 06:33:15 字數 438 閱讀 3022

限流演算法

常見的限流演算法有:令牌桶、漏桶、計數器。

令牌桶限流

令牌桶是乙個存放固定容量令牌的桶,按照固定速率往桶裡新增令牌,填滿了就丟棄令牌,請求是否被處理要看桶中令牌是否足夠,當令牌數減為零時則拒絕新的請求。令牌桶允許一定程度突發流量,只要有令牌就可以處理,支援一次拿多個令牌。令牌桶中裝的是令牌。

漏桶限流

漏桶乙個固定容量的漏桶,按照固定常量速率流出請求,流入請求速率任意,當流入的請求數累積到漏桶容量時,則新流入的請求被拒絕。漏桶可以看做是乙個具有固定容量、固定流出速率的佇列,漏桶限制的是請求的流出速率。漏桶中裝的是請求。

計數器限流

有時我們還會使用計數器來進行限流,主要用來限制一定時間內的總併發數,比如資料庫連線池、執行緒池、秒殺的併發數;計數器限流只要一定時間內的總請求數超過設定的閥值則進行限流,是一種簡單粗暴的總數量限流,而不是平均速率限流。

三種常見的限流演算法

在開發高併發系統時,有三把利器用來保護系統 快取 降級和限流。那麼何為限流呢?顧名思義,限流就是限制流量,就像你寬頻包了1個g的流量,用完了就沒了。通過限流,我們可以很好地控制系統的qps,從而達到保護系統的目的。本篇文章將會介紹一下常用的限流演算法以及他們各自的特點。1 計數器演算法 計數器演算法...

三種nginx限流方式

通過檢視nginx官方文件,小弟檢視到了三種nginx限流方式。前兩種只能對客戶端 即單一ip限流 並且文件也很全,但是經過測試發現,還是無法達到官方文件所說的結果 可能小弟的測試方法有問題 這裡先簡單的介紹一下前兩種 1 limit conn zone 1.1nginx配置 其中 limit co...

三種排序的思路

請說出至少三種排序的思路,這三種排序的時間複雜度分別為 o n n o n log2 n o n max 1.o n n 氣泡排序 比較相鄰的元素,如果第乙個比第二個大,就交換他們兩個,對每一對相鄰的元素做同樣的工作,從開始第一對到結尾最後一對,這步會讓後一位元素就是最大的數,對所有元素重複以上步驟...