集中式的Seesion管理
此次給平臺升級將原先Cookie會話,切換到集中式的Session管理
技術使用:redis或者zookeeper存儲會話數據
1.會話
所謂會話,即用戶訪問應用時保持的鏈接關係,在屢次交互中應用可以識別出當前訪問的用戶是誰,且能夠在屢次交互中保存一些數據。如訪問一些網站時登陸成功後,網站能夠記住用戶,且在退出以前均可以識別當前用戶是誰。
2.技術實現
二種方式實現:
1.重寫Servlet容器session的方案
2.放棄Servlet容器的會話管理,本身維護着會話
3.Servlet方案
1.繼承HttpServletRequestWrapper類,從新實現getSession的兩個方法 2.本身實現SessionManager,來控制sessinid 3.經過Filter攔截器替換ServletRequest的實現,完成代理模式 4.後臺有個任務線程去刪除用戶最後一次時間跟當前時間比較比較,超過設置的過時時間的用戶session
4.自定義實現
1.建立一個SessionIdGenerator用來生成sessionId。並存入此用戶的cookie中,此惟一標識惟一對應着某一個用戶
2,生產的sessionId存放到服務器中心服務器上
3.客戶每次請求都將cookie與請求一塊兒傳輸到服務器上,服務器經過sessionid去redis或者zookeeper查詢
4.每一個請求都須要更新此用戶請求的時間
5.後臺有個任務線程去刪除用戶最後一次時間跟當前時間比較比較,超過設置的過時時間的用戶session
這個方式作的好的話,能夠每臺服務器也存儲一個session,經過中心session服務器跟本地seesion雙重驗證提升效率