大型web工程的session管理器構想

2021-09-01 20:01:51 字數 692 閱讀 9317

[b]宣告:[/b]拋磚引玉,期望討論。

如果已經有類似功能的開源框架等工具,請告知,俺做鬼也不會忘記你滴 :d

本人負責維護乙個大型web專案中的其中乙個子系統,面對各種session問題,於是有了這個構想

[b]問題:[/b]

1.對session的胡亂使用:不論是不是重要資料,都使用session儲存;

2.多個子專案session重名,互相覆蓋:對於那些喜歡複製/貼上完成開發的程式設計師所經手的專案,尤為明顯;

於是構想session管理器;

[b]對內:[/b]

 封裝、**現有session

 對資訊的訪問增加字首——對不同子專案,對儲存的鍵值對中的key追加字首,避免重名覆蓋;

 [u]實現方案1:[/u]通過路徑,字首對外部呼叫人員透明;

難點,路徑必須統一管理;

[u] 實現方案2:[/u]訪問時,多傳乙個子專案標示,建議使用列舉;

難點,方法要改,且無法控制呼叫者行為;

 [u]實現方案3:[/u]重寫session實現類;

難點,對源**要熟悉,碰到系統jar包公升級要重新撓頭;

 記錄訪問情況——用於統計和管理;

[b]管理:[/b] 絕對禁止開發人員使用session,所有對資訊的訪問都必須通過管理器;

 對管理器的維護許可權,只掌握在架構師或高階工程師等少數人手中

理解 Web 中的Session

session 工作原理是什麼?因為 http 協議是無狀態的,對於伺服器端來講,如何為不同的訪問使用者提供不一樣的體驗呢?比如郵箱系統,只有登入使用者才能收發郵件.這就需要伺服器能識別每乙個客戶端訪問,知道哪些訪問是來自乙個同乙個客戶端,顯然這個事情光靠伺服器端是做不到的,需要瀏覽器配合才行,瀏覽...

大型web系統中快取的使用

對於乙個規模很大的web系統,如pv在一億以上,快取就是乙個不可或缺的重要組成部分,它可以擋掉大部分的使用者訪問的衝擊,如果沒有它,系統很可能將迅速不可用直至崩潰。但是快取帶來了另外一些棘手的問題 一致性和實時性。乙個很直觀的場景就是,資料庫中的資料狀態已經改變,但是使用者在頁面上看到的仍然是快取的...

Web基礎 Tomcat儲存Session在磁碟

今天發現tomcat對session的儲存,在重新啟動tomcat之後不會丟失,也就是說,是存放到磁碟的 也許是一些tmp檔案 那tomcat存放session的地方,是不是存放在應用的目錄 war肯定是不行的 下面呢?比如是不是存放在a.war解壓後的a資料夾裡,答案也是似乎也是否定的,因為我更新...