當客戶端訪問某個能開啟會話功能的資源,web服務(wù)器就會創(chuàng)建一個HTTPSession對象,每個HTTPSession對象都會占用一定的內(nèi)存,如果在同一個時間段內(nèi)訪問的用戶太多,就會消耗大量的服務(wù)器內(nèi)存,為了解決這個問題我們使用一種技術(shù):session的持久化。
什么是session的持久化?
web服務(wù)器會把暫時不活動的并且沒有失效的HTTPSession對象轉(zhuǎn)移到文件系統(tǒng)或數(shù)據(jù)庫中儲存,服務(wù)器要用時在把他們轉(zhuǎn)載到內(nèi)存。
把Session對象轉(zhuǎn)移到文件系統(tǒng)或數(shù)據(jù)庫中儲存就需要用到序列化; java.io.Serializable。
在tomcat重啟的時候進行一個鈍化操作、啟動成功之后再進活化。
在對應(yīng)的區(qū)域加載進來,不會丟失(前提是session中的存放的變量必須實現(xiàn)序列化接口才能鈍化,才能序列到硬盤上的一個二進制文件中去)。