java并發(fā)編程實(shí)戰(zhàn) pdf java如何處理并發(fā)問(wèn)題?
java如何處理并發(fā)問(wèn)題?在web應(yīng)用程序中,大量的客戶端請(qǐng)求會(huì)同時(shí)發(fā)送到服務(wù)器,如搶購(gòu)、秒殺等。如何避免同時(shí)向業(yè)務(wù)系統(tǒng)發(fā)送大量請(qǐng)求。第一種方法:配置容器中的最大請(qǐng)求數(shù)。如果大于請(qǐng)求數(shù),客戶端將阻止。
java如何處理并發(fā)問(wèn)題?
在web應(yīng)用程序中,大量的客戶端請(qǐng)求會(huì)同時(shí)發(fā)送到服務(wù)器,如搶購(gòu)、秒殺等。如何避免同時(shí)向業(yè)務(wù)系統(tǒng)發(fā)送大量請(qǐng)求。
第一種方法:配置容器中的最大請(qǐng)求數(shù)。如果大于請(qǐng)求數(shù),客戶端將阻止。該方法有效地防止了大量請(qǐng)求同時(shí)訪問(wèn)業(yè)務(wù)系統(tǒng),但對(duì)用戶不友好。
第二種方法:使用過(guò)濾器確保一定數(shù)量的請(qǐng)求可以正常訪問(wèn)系統(tǒng),冗余請(qǐng)求首先跳轉(zhuǎn)到隊(duì)列頁(yè)面,隊(duì)列頁(yè)面定期發(fā)起請(qǐng)求。篩選器的實(shí)現(xiàn)如下:
<pre name=“code”class=“Java”>
public class servicefilter implements filter{
private static final int maxuucount=20
private int filterCount=0
public void doFilter(ServletRequest request,ServletResponse response,F(xiàn)ilterChain chain)拋出IOException,ServletException{系統(tǒng)輸出打?。ā癰efore”filterCount)
如果(filterCount> MAXCount){
//請(qǐng)求太多,請(qǐng)?zhí)D(zhuǎn)到隊(duì)列頁(yè)請(qǐng)求.getRequestDispatcher(" 索引.jsp"). 轉(zhuǎn)發(fā)(請(qǐng)求,響應(yīng))
}]else{
//請(qǐng)求數(shù)加1
filtercount鏈.doFilter(請(qǐng)求,響應(yīng))
//訪問(wèn)結(jié)束時(shí),請(qǐng)求數(shù)減去1 filtercount--}
}
]百度搜索圈t社區(qū)(www.aiquanti.com)免費(fèi)視頻教程