【轉(zhuǎn)自】https://blog.csdn.net/u010942020/article/details/79251849
漏桶算法
漏桶算法思路很簡單,水(請求)先進(jìn)入到漏桶里谋币,漏桶以一定的速度出水仗扬,當(dāng)水流入速度過大會直接溢出,可以看出漏桶算法能強(qiáng)行限制數(shù)據(jù)的傳輸速率蕾额。
令牌桶算法
對于很多應(yīng)用場景來說厉颤,除了要求能夠限制數(shù)據(jù)的平均傳輸速率外,還要求允許某種程度的突發(fā)傳輸凡简。這時候漏桶算法可能就不合適了,令牌桶算法更為適合精肃。如圖2所示秤涩,令牌桶算法的原理是系統(tǒng)會以一個恒定的速度往桶里放入令牌,而如果請求需要被處理司抱,則需要先從桶里獲取一個令牌筐眷,當(dāng)桶里沒有令牌可取時,則拒絕服務(wù)习柠。
限流工具類RateLimiter
Google開源工具包Guava提供了限流工具類RateLimiter匀谣,該類基于令牌桶算法來完成限流,非常易于使用资溃。