1. 客戶端cookie加密
。比較好的方法是自己採用cookie機制來實現乙個session,在應用中使用此session實現。
問題:session中資料不能太多,最好只有個使用者id。
session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。
如果說cookie機制是通過檢查客戶身上的「通行證」來確定客戶身份的話,那麼session機制就是通過檢查伺服器上的「客戶明細表」來確認客戶身份。session相當於程式在伺服器上建立的乙份客戶檔案,客戶來訪的時候只需要查詢客戶檔案表就可以了。
session儲存在伺服器端。為了獲得更高的訪問速度,伺服器一般把session放在記憶體裡。每個使用者都會有乙個獨立的session。如果session內容過於複雜,當大量客戶訪問伺服器時可能會導致記憶體溢位。因此,session裡的資訊應該盡量精簡。
可能大部分應用伺服器都提供了session複製的功能來實現集群,tomcat,jboss,was都提供了這樣的功能。
問題:
效能隨著伺服器增加急劇下降,而且容易引起廣播風暴;參考資料:session資料需要序列化,影響效能。
如何序列化,可以參考 物件的序列化和反序列化.
tomcat 5集群中的session複製一tomcat 5集群中的session複製二
應用伺服器-jboss 4.0.2集群指南
3. 使用資料庫儲存session
使用資料庫來儲存session,就算伺服器宕機了也沒事,session照樣在。
問題:程式需要定製;
每次請求都進行資料庫讀寫開銷不小(使用記憶體資料庫可以提高效能,宕機就會丟失資料。可供選擇的記憶體資料庫有berkeleydb,mysql的記憶體表);資料庫是乙個單點,當然可以做資料庫的ha來解決這個問題。
4. 使用共享儲存來儲存session
和資料庫類似,就算伺服器宕機了也沒事,session照樣在。使用nfs或windows檔案共享都可以,或者專用的共享儲存裝置。
問題:程式需要定製;
頻繁的進行資料的序列化和反序列化,效能是否有影響;5. 使用memcached來儲存session共享儲存是乙個單點,這個可以通過raid來解決。
這種方式跟資料庫類似,不過因為是記憶體訪問的,效能自然要比資料庫好多了。
問題:
程式需要定製,增加了工作量;
存入memcached中的資料都需要序列化,效率較低;memcached伺服器一死,所有session全丟。memchached能不能做ha? 我也不知道,**上沒提。
參考資料:
應用memcached儲存session會話資訊
正確認識memcached的快取失效6. 使用terracotta來儲存session擴充套件tomcat 6.x,使用memcached存放session資訊
跟memcached類似,但是資料不需要序列化,並且是find-grained changes,效能更好。配置對原來的應用完全透明,原有程式幾乎不用做任何修改。而且terracotta本身支援ha。
問題:terracotta的ha本身進行資料複製效能如何?
jvm-level clustering
terracotta集群tomcat實現session同步
使用terracotta和tomcat建立active-passive模式的集群用spring web flow和terracotta搭建web應用
terracotta實戰示例——集群rife
terracotta近況:轉向開源,接受度,hibernate支援附:terracotta介紹
集群中幾種session同步解決方案的比較
在集群中session安全和同步是個最大的問題,下面是收集到的幾種session同步的方案,希望能通過分析其各自的優劣找出其適應的場景。1.客戶端cookie加密 簡單,高效。比較好的方法是自己採用cookie機制來實現乙個session,在應用中使用此session實現。問題 session中資料...
集群中幾種session同步解決方案的比較
在集群中session安全和同步是個最大的問題,下面是收集到的幾種session同步的方案,希望能通過分析其各自的優劣找出其適應的場景。1.客戶端cookie加密 簡單,高效。比較好的方法是自己採用cookie機制來實現乙個session,在應用中使用此session實現。問題 session中資料...
集群中幾種session同步解決方案的比較
在集群中session安全和同步是個最大的問題,下面是收集到的幾種session同步的方案,希望能通過分析其各自的優劣找出其適應的場景。1.客戶端cookie加密 簡單,高效。比較好的方法是自己採用cookie機制來實現乙個session,在應用中使用此session實現。問題 session中資料...