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