并發(fā) - java如果打回相差幾毫秒的請(qǐng)求
問(wèn)題描述
1.有一個(gè)用戶(hù)在10毫秒內(nèi)提交了兩個(gè)請(qǐng)求.前端已經(jīng)上了應(yīng)用市場(chǎng),所以改不了,只能從java下手.請(qǐng)問(wèn)怎么設(shè)計(jì)能將第二個(gè)請(qǐng)求直接打回?并且需要考慮并發(fā)情況
補(bǔ)充:如果需要對(duì)所有的接口都進(jìn)行這種過(guò)濾,請(qǐng)問(wèn)需要如何設(shè)計(jì)?
問(wèn)題解答
回答1:寫(xiě)個(gè)攔截器,過(guò)濾下。對(duì)于連續(xù)兩次相隔時(shí)間大于10ms的過(guò)濾下
回答2:PHP的laravel框架里有個(gè)概念就是中間件,可以把請(qǐng)求都先用指定的中間件過(guò)濾下。
不過(guò)估計(jì)你現(xiàn)在的情況得用到內(nèi)存數(shù)據(jù)庫(kù)。把請(qǐng)求的內(nèi)容編碼后插入到庫(kù)里(加上請(qǐng)求時(shí)間字段),響應(yīng)請(qǐng)求時(shí)候先查詢(xún)是否有編碼相同的請(qǐng)求,如果沒(méi)有響應(yīng)請(qǐng)求,如果有,比對(duì)時(shí)間差后再做處理。
過(guò)于頻繁請(qǐng)求的用戶(hù)可以加入黑名單。
當(dāng)然這都還有個(gè)必要條件就是請(qǐng)求的內(nèi)容里可以判斷出用戶(hù),不然就難搞了。
相關(guān)文章:
1. 為什么我ping不通我的docker容器呢???2. 服務(wù)器端 - 采用nginx做web服務(wù)器,C++開(kāi)發(fā)應(yīng)用程序 出現(xiàn)拒絕連接請(qǐng)求?3. java - 自己制作一個(gè)視頻播放器,遇到問(wèn)題,用的是內(nèi)置surfaceview類(lèi),具體看代碼!4. javascript - 有什么兼容性比較好的辦法來(lái)判斷瀏覽器窗口的類(lèi)型?5. javascript - vue 移動(dòng)端的input 數(shù)字輸入優(yōu)化6. 關(guān)于docker下的nginx壓力測(cè)試7. python - pandas按照列A和列B分組,將列C求平均數(shù),怎樣才能生成一個(gè)列A,B,C的dataframe8. HTML5禁止img預(yù)覽該怎么解決?9. javascript - nidejs環(huán)境設(shè)置操作一直出現(xiàn)這種問(wèn)題怎么解決?10. java - 靜態(tài)屬性中的賦值和靜態(tài)代碼塊中的賦值有什么區(qū)別?
