令牌桶实现限流原理
思路分析
令牌桶算法
令牌桶算法是比較常見的限流算法之一,大概描述如下:
1)所有的請(qǐng)求在處理之前都需要拿到一個(gè)可用的令牌才會(huì)被處理;
2)根據(jù)限流大小,設(shè)置按照一定的速率往桶里添加令牌;
3)桶設(shè)置最大的放置令牌限制,當(dāng)桶滿時(shí)、新添加的令牌就被丟棄或者拒絕;
4)請(qǐng)求達(dá)到后首先要獲取令牌桶中的令牌,拿著令牌才可以進(jìn)行其他的業(yè)務(wù)邏輯,處理完業(yè)務(wù)邏輯之后,將令牌直接刪除;
5)令牌桶有最低限額,當(dāng)桶中的令牌達(dá)到最低限額的時(shí)候,請(qǐng)求處理完之后將不會(huì)刪除令牌,以此保證足夠的限流
如下圖:
這個(gè)算法的實(shí)現(xiàn),有很多技術(shù),Guaua是其中之一,redis客戶端也有其實(shí)現(xiàn)。
?
總結(jié)
- 上一篇: 未付服务网关限流作用
- 下一篇: 微服务网关限流讲解