如何運用Java分布式session存儲-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的達川網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

這篇文章主要為大家展示了如何運用Java分布式session存儲,內(nèi)容簡而易懂,下面讓小編帶大家一起學習一下吧。

Session Stick

Session Stick 方案即將客戶端的每次請求都轉(zhuǎn)發(fā)至同一臺服務器,這就需要負載均衡器能夠根據(jù)每次請求的會話標識(SessionId)來進行請求轉(zhuǎn)發(fā),如下圖所示。

如何運用Java分布式session存儲

這種方案實現(xiàn)比較簡單,對于Web服務器來說和單機的情況一樣。但是可能會帶來如下問題:

如果有一臺服務器宕機或者重啟,那么這臺機器上的會話數(shù)據(jù)會全部丟失。

會話標識是應用層信息,那么負載均衡要將同一個會話的請求都保存到同一個Web服務器上的話,就需要進行應用層(第7層)的解析,這個開銷比第4層大。

負載均衡器將變成一個有狀態(tài)的節(jié)點,要將會話保存到具體Web服務器的映射。和無狀態(tài)節(jié)點相比,內(nèi)存消耗更大,容災方面也會更麻煩。

Session Replication

Session Replication 的方案則不對負載均衡器做更改,而是在Web服務器之間增加了會話數(shù)據(jù)同步的功能,各個服務器之間通過同步保證不同Web服務器之間的Session數(shù)據(jù)的一致性,如下圖所示。

如何運用Java分布式session存儲

Session Replication 方案對負載均衡器不再有要求,但是同樣會帶來以下問題:

同步Session數(shù)據(jù)會造成額外的網(wǎng)絡帶寬的開銷,只要Session數(shù)據(jù)有變化,就需要將新產(chǎn)生的Session數(shù)據(jù)同步到其他服務器上,服務器數(shù)量越多,同步帶來的網(wǎng)絡帶寬開銷也就越大。

每臺Web服務器都需要保存全部的Session數(shù)據(jù),如果整個集群的Session數(shù)量太多的話,則對于每臺機器用于保存Session數(shù)據(jù)的占用會很嚴重。

Session 數(shù)據(jù)集中存儲

Session 數(shù)據(jù)集中存儲方案則是將集群中的所有Session集中存儲起來,Web服務器本身則并不存儲Session數(shù)據(jù),不同的Web服務器從同樣的地方來獲取Session,如下圖所示。

如何運用Java分布式session存儲

相對于Session Replication方案,此方案的Session數(shù)據(jù)將不保存在本機,并且Web服務器之間也沒有了Session數(shù)據(jù)的復制,但是該方案存在的問題在于:

讀寫Session數(shù)據(jù)引入了網(wǎng)絡操作,這相對于本機的數(shù)據(jù)讀取來說,問題就在于存在時延和不穩(wěn)定性,但是通信發(fā)生在內(nèi)網(wǎng),則問題不大。

如果集中存儲Session的機器或集群出現(xiàn)問題,則會影響應用。

Cookie Based

Cookie Based 方案是將Session數(shù)據(jù)放在Cookie里,訪問Web服務器的時候,再由Web服務器生成對應的Session數(shù)據(jù),如下圖所示。

如何運用Java分布式session存儲

但是Cookie Based 方案依然存在不足:

Cookie長度的限制。這會導致Session長度的限制。

安全性。Seesion數(shù)據(jù)本來是服務端數(shù)據(jù),卻被保存在了客戶端,即使可以加密,但是依然存在不安全性。

帶寬消耗。這里不是指內(nèi)部Web服務器之間的寬帶消耗,而是數(shù)據(jù)中心的整體外部帶寬的消耗。

性能影響。每次HTTP請求和響應都帶有Seesion數(shù)據(jù),對Web服務器來說,在同樣的處理情況下,響應的結果輸出越少,支持的并發(fā)就會越高。

以上就是關于如何運用Java分布式session存儲的內(nèi)容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

新聞名稱:如何運用Java分布式session存儲-創(chuàng)新互聯(lián)
分享URL:http://muchs.cn/article44/csjshe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣移動網(wǎng)站建設、企業(yè)網(wǎng)站制作小程序開發(fā)、服務器托管、品牌網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司