tomcat - java資料存放問題
迷茫
迷茫 2017-06-12 09:21:38
0
1
576

如題,有登陸的系統,舊項目沒cache(我沒權利去加),但是不同的服務都要使用先前http請求到的資料(由使用者區分),想把它保存起來避免每次重複發http請求浪費資源。

後台springmvc

#目前我想到3個方法:

1.丟session裡面(HttpSessionListener),應該最簡單,但不知道潛在問題
2.丟threadlocal裡面(controller搞個static 的threadlocal的變量,或者寫個contextholder)
3.controller搞個ConcurrentHashMap的成員,把資料按<用戶id,http請求拿到的資料>放進去.但是這個肯定不可行,可能會導致堆區OOF

說說第2個方案可能存在的問題。
1.網路上說的可能記憶體外洩問題,導致PermGen出現OOF,原文連接ThreadLocal 記憶體外洩的實例分析

我不確定是否會出現問題(原文有點看不懂),因為ThreadLocalMap的set具有保護機制

2.會不會出現請求線程裡面的資料串了,例如1個請求線程同時服務兩個用戶(A和B)請求,B把自己的資料放到請求線程,覆蓋了A的,而請求線程服務A的時候,拿到了B的資料。 。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!