背景
當(dāng)系統(tǒng)并發(fā)量攀升,為了在有限的物理資源下保護(hù)系統(tǒng)可用性,對(duì)用戶發(fā)來的請(qǐng)求進(jìn)行限流。
限流思路
who(限流維度):
用戶維度限流:同一個(gè)用戶,如果發(fā)生過多的異常流量,計(jì)數(shù)到redis里邊,對(duì)于n次進(jìn)行異常流量操作的用戶,計(jì)入黑名單,下次拒絕訪問。
url接口維度限流:不同用戶訪問同一個(gè)接口,接口壓力過大,觸發(fā)限流
限流分類
單機(jī)限流
1 限制一個(gè)url訪問頻率
2 限制用戶訪問
集群限流
比如為了限制某個(gè)資源被每個(gè)用戶或者商戶的訪問次數(shù),5s只能訪問2次,或者一天只能調(diào)用1000次,這種需求,單機(jī)限流是無法實(shí)現(xiàn)的,這時(shí)就需要通過集群限流進(jìn)行實(shí)現(xiàn)。
限流算法