令牌桶算法:
1.名詞解釋
令牌:可以理解爲一次性的門禁卡
產生令牌:以恆定的速率產生令牌放入桶中
消耗令牌:每一次請求都會消耗桶中的令牌,大的數據包需要的令牌多一些,小的數據包需要的令牌少一些
令牌桶大小:令牌桶的容量
2.場景
- 當請求消耗令牌的速率持續小於產生令牌的速率時,令牌桶在一定時間就會變滿,此時新產生的令牌就無效,不放入令牌桶
- 當請求消耗令牌的速率大於令牌產生的速率時,此時就會消耗令牌桶中的存貨(第一種情況也會消耗,但是會及時補充,所以就可以理解爲不消耗)來保持現在的請求速率,當令牌桶存貨消耗爲空時,請求速率就被限制爲令牌的產生速率。
3.優點
在限流的情況下,偶爾的高流量(請求很多)是不可避免的,多餘的請求只有被丟棄。
令牌桶算法有效解決了這一問題,有了令牌桶做緩衝,偶爾的高流量(請求很多)並不會被直接丟棄