伺服器集群後,共享session問題

2021-06-25 19:42:07 字數 962 閱讀 2289

隨著網際網路應用的使用者量不斷激增,併發的需求越來越受到開發者的關注,通過集群的方式來解決web的瓶頸。但是集群的session共享是個比較頭疼的事情,歸結起來就三種解決方案:

(1)客戶端儲存方案:把session加密後存在cookie中,每次session資訊被寫在客服端,然後經瀏覽器再次提交到伺服器.即使兩次請求在集群中的兩台伺服器上完成,也可以到達session共享.這種解決方法的優點是session資訊不用存放在伺服器端,大大減輕了伺服器的壓力.另乙個優點是乙個session中的兩次或多次請求可以在乙個群集中的多個伺服器上完成,可以避免單點故障.目前,**是採用的這種解決方案.

這個方案可能比較陌生,但它在大型**中還是比較普遍被使用。原理是將全站使用者的session資訊加密、序列化後以cookie的方式,統一種植在根網域名稱下(如:.host.com),利用瀏覽器訪問該根網域名稱下的所有二級網域名稱站點時,會傳遞與之網域名稱對應的所有cookie內容的特性,從而實現使用者的cookie化session 在多服務間的共享訪問。

這個方案的優點無需額外的伺服器資源;缺點是由於受http協議頭信心長度的限制,僅能夠儲存小部分的使用者資訊,同時cookie化的 session內容需要進行安全加解密(如:採用des、rsa等進行明文加解密;再由md5、sha-1等演算法進行防偽認證),另外它也會占用一定的頻寬資源,因為瀏覽器會在請求當前網域名稱下任何資源時將本地cookie附加在http頭中傳遞到伺服器。

(2)集中式session共享方案:提供乙個群集儲存session共享資訊.其他應用統統把自己的session資訊存放到session群集伺服器組.當應用系統需要session資訊的時候直接到session群集伺服器上讀取.這種方式具有第一種方式的第二個優點. 

(3)session複製方案:配置負載均衡伺服器,讓使用者的乙個session在乙個伺服器完成.定時的備份session資訊到salve上面.一台伺服器down掉後,通過均衡伺服器透明把使用者的請求**到群集中的其他伺服器上,此時需要從salve上讀取備份的session資訊. 

SESSION 跨伺服器共享session

首先,建立儲存session的表sessions createtablesessions sidchar 32 notnull,expiryint 11 unsignednotnull,valuetextnotnull,primarykey sid 註冊session的頁面session reg.p...

跨伺服器session共享

1.基於nfs的session共享 nfs是net filesystem的簡稱,最早由sun公司為解決unix網路主機間的目錄共享而研發。這個方案實現最為簡單,無需做過多的二次開發,僅需將共享目錄伺服器mount到各頻道伺服器的本地session目錄即可,缺點是nfs依託 於復 雜的安全機制和檔案系...

解決應用伺服器集群後session問題

一.何為session 使用者使用 的服務,基本上需要瀏覽器和web伺服器進行多次互動,web伺服器如何知道哪些請求是來自哪個會話的?具體方式為 在會話開始時,分配乙個唯一的會話標識 sessionid 通過cookie把這個標識告訴瀏覽器,以後每次請求的時候,瀏覽器都會帶上這個會話標識來告訴web...