漏桶演算法和令牌桶演算法

2021-09-18 02:45:15 字數 446 閱讀 5235

###漏桶演算法

水(請求)先進入漏桶裡,漏桶以一定的速度出水(介面迴圈去獲取請求),當水流入速度過大會直接溢位,然後拒絕請求。可見這裡有兩個變數,乙個是桶的大小,支援流量最大時可以存放多少的水(請求),另乙個是水桶漏洞的大小,在某些情況下,漏桶演算法不能有效地使用網路資源,因為漏桶的漏出速率是固定的引數,所以即使網路中不存在資源衝突(沒有發生擁塞),漏桶演算法也不能使某乙個單獨的流突發到埠速率,因此漏桶演算法對於存在突發特性的流量來說卻反效率,而令牌桶演算法則能夠滿足這些具有突發特性的流量。通常,漏桶演算法與令牌桶演算法可以結合起來為網路流量提供更大的控制。

###令牌桶演算法

令牌桶演算法是往同理加入token,如果桶已經滿了就不再加了,新請求來臨時,會拿走乙個token,如果沒有token可拿了就阻塞或拒絕服務。令牌桶的另乙個好處是可以方便地改變速率,一旦需要提高速率,則按需提高放入桶中令牌的速率,一把會定時往桶中增加一定數量的令牌。

漏桶演算法與令牌桶演算法

漏桶演算法 leaky bucket 是網路世界中流量整形 traffic shaping 或速率限制 rate limiting 時經常使用的一種演算法,它的主要目的是控制資料注入到網路的速率,平滑網路上的突發流量。漏桶演算法提供了一種機制,通過它,突發流量可以被整形以便為網路提供乙個穩定的流量。...

令牌桶 限速 限速之令牌桶和漏桶演算法

限速是大型服務裡面必備的功能,目的是對併發控制和請求進行限速來保護系統,讓系統不會因為單位時間內的請求數量太大,被打爆。對於超過了限速的那些請求,處理方法往往是 直接拒絕服務,排隊等待,或者降級處理。對於限速來說,最常用的兩個演算法是 令牌桶演算法和漏桶演算法,下面我們便來看下它們是怎麼回事。一 令...

常用的限流演算法 漏桶和令牌桶演算法

常用的限流演算法有兩種 漏桶演算法和令牌桶演算法。漏桶演算法與令牌桶演算法在表面看起來類似,很容易將兩者混淆。但事實上,這兩者具有截然不同的特性,且為不同的目的而使用。漏桶演算法與令牌桶演算法的區別在於 l 漏桶演算法能夠強行限制資料的傳輸速率。l 令牌桶演算法能夠在限制資料的平均傳輸速率的同時還允...