經(jīng)過(guò)昨天的再次日志的詳細(xì)記錄,把線(xiàn)程處理中的請(qǐng)求包記錄下來(lái),發(fā)現(xiàn)有比較大的共性,那就是出問(wèn)題的請(qǐng)求都是用戶(hù)登錄的請(qǐng)求,后臺(tái)仔細(xì)檢查這個(gè)請(qǐng)求的處理過(guò)程,發(fā)現(xiàn)有一個(gè)大問(wèn)題在里面:
1。應(yīng)用程序在特定的配置下,會(huì)記錄下每個(gè)用戶(hù)的登錄信息(不只是當(dāng)前用戶(hù),而是登錄過(guò)的所有用戶(hù))
2.在新用戶(hù)登錄的時(shí)候,會(huì)檢查1中記錄的所有用戶(hù)信息的狀態(tài)
這樣就造成一個(gè)大問(wèn)題了,隨著用戶(hù)的不斷登錄登出,程序中積累的用戶(hù)信息越來(lái)越多,而如果這時(shí)候同時(shí)有大量用戶(hù)登錄,每次登陸的時(shí)候都去循環(huán)檢查所有用戶(hù)信息,這樣需要做的工作就巨大無(wú)比了。
現(xiàn)在的改進(jìn)是:
1.改每次用戶(hù)登錄檢查為每隔30秒循環(huán)檢查
2.清理不需要的用戶(hù)信息,避免出現(xiàn)保存的用戶(hù)信息量過(guò)大。
3.使用線(xiàn)程安全的map對(duì)象做數(shù)據(jù)保存
結(jié)果:
今日的用戶(hù)數(shù)量和前幾天差不多,高峰的時(shí)候也是平均并發(fā)3000多,一整天沒(méi)有出現(xiàn)任何問(wèn)題。基本確認(rèn)就是該問(wèn)題導(dǎo)致的。