Java集群之session共享解決方案

2021-08-25 12:34:37 字數 1113 閱讀 4597

隨著網際網路的日益壯大,**的pv和uv成線性或者指數倍的增加.單伺服器單資料庫早已經不能滿足實際需求.比如像盛大,**這樣的大型網路公司,更是如此.

集群,也就是讓一組計算機伺服器協同工作,達解決大併發,大資料量瓶頸問題.但是在群集中,session往往是乙個比餃頭疼的問題.一般情況下,session不可跨伺服器而存在.下面給出幾種session共享的解決方案.

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

基於cookie的session共享

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

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

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

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

開發人員可以根據自己的實際情況選擇適合自己的session共享方式.

Java集群之session共享解決方案

隨著網際網路的日益壯大,的pv和uv成線性或者指數倍的增加.單伺服器單資料庫早已經不能滿足實際需求.比如像盛大,這樣的大型網路公司,更是如此.集群,也就是讓一組計算機伺服器協同工作,達解決大併發,大資料量瓶頸問題.但是在群集中,session往往是乙個比餃頭疼的問題.一般情況下,session不可跨...

java集群之session共享解決方案

一 提出問題 為了滿足足夠大的應用,滿足更多的客戶,於是我們架設了n臺web伺服器 n 2 在多台web伺服器的情況下,我們會涉及到乙個問題 使用者登陸一台伺服器以後,如果在跨越到另一台伺服器的時候能夠繼續使用客戶的session?二 解決方案 集群中session安全和同步是個最大的問題,下面是收...

Java集群之session共享解決方案

隨著網際網路的日益壯大,的pv和uv成線性或者指數倍的增加.單伺服器單資料庫早已經不能滿足實際需求.比如像盛大,這樣的大型網路公司,更是如此.集群,也就是讓一組計算機伺服器協同工作,達解決大併發,大資料量瓶頸問題.但是在群集中,session往往是乙個比餃頭疼的問題.一般情況下,session不可跨...