2022-10-07 分類: 網(wǎng)站建設(shè)
在做了web集群后,你肯定會(huì)首先考慮session同步問(wèn)題,因?yàn)橥ㄟ^(guò)負(fù)載均衡后,同一個(gè)IP訪問(wèn)同一個(gè)頁(yè)面會(huì)被分配到不同的服務(wù)器上,如果session不同步的話,一個(gè)登錄用戶,一會(huì)是登錄狀態(tài),一會(huì)又不是登錄狀態(tài)。所以本文就根據(jù)這種情況給出三種不同的方法來(lái)解決這個(gè)問(wèn)題:
一、利用數(shù)據(jù)庫(kù)同步session
在做多服務(wù)器session同步時(shí)我沒(méi)有用這種方法,如果非要用這種方法的話,我想過(guò)二種方法:
1,用一個(gè)低端電腦建個(gè)數(shù)據(jù)庫(kù)專門(mén)存放web服務(wù)器的session,或者,把這個(gè)專門(mén)的數(shù)據(jù)庫(kù)建在文件服務(wù)器上,用戶訪問(wèn)web服務(wù)器時(shí),會(huì)去這個(gè)專門(mén)的數(shù)據(jù)庫(kù)check一下session的情況,以達(dá)到session同步的目的。
2,這種方法是把存放session的表和其他數(shù)據(jù)庫(kù)表放在一起,如果mysql也做了集群了話,每個(gè)mysql節(jié)點(diǎn)都要有這張表,并且這張session表的數(shù)據(jù)表要實(shí)時(shí)同步。
說(shuō)明:用數(shù)據(jù)庫(kù)來(lái)同步session,會(huì)加大數(shù)據(jù)庫(kù)的負(fù)擔(dān),數(shù)據(jù)庫(kù)本來(lái)就是容易產(chǎn)生瓶頸的地方,如果把session還放到數(shù)據(jù)庫(kù)里面,無(wú)疑是雪上加霜。上面的二種方法,第一點(diǎn)方法較好,把放session的表獨(dú)立開(kāi)來(lái),減輕了真正數(shù)據(jù)庫(kù)的負(fù)擔(dān)
二、利用cookie同步session
session是文件的形勢(shì)存放在服務(wù)器端的,cookie是文件的形勢(shì)存在客戶端的,怎么實(shí)現(xiàn)同步呢?方法很簡(jiǎn)單,就是把用戶訪問(wèn)頁(yè)面產(chǎn)生的session放到cookie里面,就是以cookie為中轉(zhuǎn)站。你訪問(wèn)web服務(wù)器A,產(chǎn)生了session把它放到cookie里面了,你訪問(wèn)被分配到web服務(wù)器B,這個(gè)時(shí)候,web服務(wù)器B先判斷服務(wù)器有沒(méi)有這個(gè)session,如果沒(méi)有,在去看看客戶端的cookie里面有沒(méi)有這個(gè)session,如果也沒(méi)有,說(shuō)明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服務(wù)器B,這樣就可以實(shí)現(xiàn)session的同步了。
說(shuō)明:這種方法實(shí)現(xiàn)起來(lái)簡(jiǎn)單,方便,也不會(huì)加大數(shù)據(jù)庫(kù)的負(fù)擔(dān),但是如果客戶端把cookie禁掉了的話,那么session就無(wú)從同步了,這樣會(huì)給網(wǎng)站帶來(lái)?yè)p失;cookie的安全性不高,雖然它已經(jīng)加了密,但是還是可以偽造的。
三、利用memcache同步session
memcache可以做分布式,如果沒(méi)有這功能,他也不能用來(lái)做session同步。他可以把web服務(wù)器中的內(nèi)存組合起來(lái),成為一個(gè)"內(nèi)存池",不管是哪個(gè)服務(wù)器產(chǎn)生的sessoin都可以放到這個(gè)"內(nèi)存池"中,其他的都可以使用。
優(yōu)點(diǎn):以這種方式來(lái)同步session,不會(huì)加大數(shù)據(jù)庫(kù)的負(fù)擔(dān),并且安全性比用cookie大大的提高,把session放到內(nèi)存里面,比從文件中讀取要快很多。
缺點(diǎn):memcache把內(nèi)存分成很多種規(guī)格的存儲(chǔ)塊,有塊就有大小,這種方式也就決定了,memcache不能完全利用內(nèi)存,會(huì)產(chǎn)生內(nèi)存碎片,如果存儲(chǔ)塊不足,還會(huì)產(chǎn)生內(nèi)存溢出。
四、總結(jié)
上面三種方法都是可行的
第一種方法,最影響系統(tǒng)速度的那種,不推薦使用;
第二種方法,效果不錯(cuò),不過(guò)安全隱患一樣的存在;
第三種方法,個(gè)人覺(jué)得第三種方法是最好的,推薦大家使用
網(wǎng)頁(yè)標(biāo)題:web服務(wù)器集群(多臺(tái)web服務(wù)器)session同步、共享的3種解決方法
本文路徑:http://muchs.cn/news25/203225.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、軟件開(kāi)發(fā)、域名注冊(cè)、外貿(mào)建站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容