亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

tomcat - java數(shù)據(jù)存放問(wèn)題

瀏覽:113日期:2023-11-11 11:37:44

問(wèn)題描述

如題,有登陸的系統(tǒng),老項(xiàng)目沒(méi)cache(我沒(méi)權(quán)利去加),但是不同的服務(wù)都要使用先前http請(qǐng)求到的數(shù)據(jù)(由用戶區(qū)分),想把它保存起來(lái)避免每次重復(fù)發(fā)http請(qǐng)求浪費(fèi)資源。

后臺(tái)springmvc

目前我想到3個(gè)方法:

1.丟session里面(HttpSessionListener),應(yīng)該最簡(jiǎn)單,但不知道潛在問(wèn)題2.丟threadlocal里面(controller搞個(gè)static 的threadlocal的變量,或者寫(xiě)個(gè)contextholder)3.controller搞個(gè)ConcurrentHashMap的成員,把數(shù)據(jù)按<用戶id,http請(qǐng)求拿到的數(shù)據(jù)>放進(jìn)去.但是這個(gè)肯定不可行,可能會(huì)導(dǎo)致堆區(qū)OOF

說(shuō)說(shuō)第2個(gè)方案可能存在的問(wèn)題。1.網(wǎng)上說(shuō)的可能內(nèi)存泄露問(wèn)題,導(dǎo)致PermGen出現(xiàn)OOF,原文連接ThreadLocal 內(nèi)存泄露的實(shí)例分析

我不確定是否會(huì)出現(xiàn)問(wèn)題(原文有點(diǎn)看不懂),因?yàn)門hreadLocalMap的set具有保護(hù)機(jī)制

2.會(huì)不會(huì)出現(xiàn)請(qǐng)求線程里面的數(shù)據(jù)串了,比如1個(gè)請(qǐng)求線程同時(shí)服務(wù)兩個(gè)用戶(A和B)請(qǐng)求,B把自己的數(shù)據(jù)放到請(qǐng)求線程,覆蓋了A的,而請(qǐng)求線程服務(wù)A的時(shí)候,拿到了B的數(shù)據(jù)。。

問(wèn)題解答

回答1:

方法1是最簡(jiǎn)單、最常用的,如果用戶量太大,或者做了負(fù)載均衡,就要實(shí)現(xiàn)集中存儲(chǔ)的Session,有很多現(xiàn)成的方案可以支持集中存儲(chǔ)的HttpSession的,存Redis、MongoDB、MySQL的都有,GitHub上搜一下。

方法2不解決問(wèn)題,主要是因?yàn)橛脩舻卿浐螅啻握?qǐng)求可能會(huì)落在多個(gè)線程里。你說(shuō)的第二點(diǎn)也是理由。

方法3也是一種實(shí)現(xiàn)方式,其實(shí)Tomcat的HttpSession就是用ConcurrentHashMap實(shí)現(xiàn)的(只是它用sessionId而不是用userId做key),但要注意的一點(diǎn)是,你必須自己管理Map中每個(gè)Key-Value的生命周期,例如Session超時(shí)了要及時(shí)remove掉。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 99精品视频免费观看 | 精品国产品国语在线不卡丶 | 欧美精品在线视频 | 久久福利青草精品资源站免费 | 国内精品1区1区3区4区 | 亚洲欧美中文字幕在线网站 | 日韩www视频 | 免费观看一级成人毛片软件 | 中文在线最新版天堂 | 欧美另类69xxxxx 视频 | 欧美美女一区二区三区 | 一级毛片在线视频 | 免费看一级欧美毛片视频 | 中午字幕在线观看 | 一级日韩一级欧美 | 男女视频免费在线观看 | 欧美特黄一区二区三区 | 久久中文字幕乱码免费 | 日韩一区二区免费看 | 美女张开腿让男人捅的视频 | 日韩欧美在线视频 | 艳女伦交一级毛片 | 国产午夜免费不卡精品理论片 | 国产一级久久免费特黄 | 国产成人在线综合 | 伊大人香蕉久久网欧美 | 久久亚洲精品中文字幕 | 久久午夜精品视频 | 成人免费看黄网址 | 制服丝袜怡红院 | 一级国产在线观看高清 | 亚洲性生活视频 | 男人添女人下面免费毛片 | 日韩欧美综合在线二区三区 | 老司机免费福利午夜入口ae58 | 成人手机在线视频 | 国产精品久久久久久久 | 久久久久久久国产精品毛片 | 成人18免费网站在线观看 | 色成人亚洲 | 亚洲第一页在线播放 |