JavaWeb應用多用戶高并發請求相同URL時出現回應結果混亂問題

suninformation 14年前發布 | 8K 次閱讀 Java 性能優化

最近又一個新的問題出現,有客戶反映登錄后導航菜單樹的根分組信息偶爾會出現當前用戶加載其它用戶數據的現象,應用程序運行環境是四臺WebLogic服務器節點,由F5做負載均衡;
前端采用的是ExtJS框架+Ajax技術,業務邏輯代碼均采用Servlet實現;
在了解了情況后,首先進行了代碼排查,未發現問題;
由于用戶的登錄信息是保存在Session中的,所以任何用戶讀取菜單分組信息都是通過相同的URL地址進行請求,考慮會不會是F5有對相同的URL請求有緩存,于是單獨寫了一個測試程序,同時模擬3個用戶登錄,對此URL地址做并發請求1000次,結果發現這三個用戶中的兩個用戶的請求回應中確實有4~5次的回應結果是另外一個用戶的菜單分組信息;
我所了解的緩存一般都是通過請求URL地址去匹配的,于是我將URL參數進行了變化,即每次請求的URL都加上一個隨即數,用于區別為不同的請求,重新執行了模擬登錄并發操作,結果還是一樣!
這是怎么回事兒呢,現在想脫離F5(此設備由其它廠商維護,不請楚具體設置),采用直接向WEB應用做并發測試,于由公司的服務器都是普通的PC,并發大了就無響應了,正在積極解決此問題!
在這里發貼是想請教各位,有沒有遇到過此類問題的?幫兄弟分析一下,給個思路!

問題已解決,原因是變量最定義為成員變量,從Session中取的值最放置其中,當并發請求時此值被改變所致!

 本文由用戶 suninformation 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!