限流的概念

weixin_34138377發表於2018-09-30

限流是對使用者的請求進行限制來保護系統。

常見的限流有以下幾種:

限制總併發數

限制時間視窗的平均速率

限制介面的呼叫速率

···

限流演算法有令牌桶法和漏桶法。

令牌桶演算法是一個存放固定容量令牌的桶,按照固定速率往桶裡新增令牌。

令牌桶演算法的描述如下:

假設限制一秒兩個令牌,則按照500毫秒的固定速率往桶中新增令牌;

桶中最多存放b個令牌,當桶滿時,新新增的令牌被丟棄或拒絕;

當一個n個位元組大小的資料包到達,將從桶中刪除n個令牌,接著資料包被髮送到網路上;

如果桶中的令牌不足n個,則不會刪除令牌,且該資料包將被限流(要麼丟棄,要麼緩衝區等待)。

漏桶作為計量工具時,可以用於流量整形和流量控制。

漏桶演算法的描述如下:

一個固定容量的漏桶,按照常量固定速率流出水滴;

如果桶是空的,則不需流出水滴;

可以以任意速率流入水滴到漏桶;

如果流入水滴超出了桶的容量,則流入的水滴溢位了(被丟棄),而漏桶容量是不變的。

相關文章