日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

web集群时session同步的3种方法

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web集群时session同步的3种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

web集群時session同步的3種方法

?

在做了web集群后,你肯定會首先考慮session同步問題,因為通過負載均衡后,同一個IP訪問同一個頁面會被分配到不同的服務器上,如果session不同步的話,一個登錄用戶,一會是登錄狀態,一會又不是登錄狀態。所以本文就根據這種情況給出三種不同的方法來解決這個問題:

一,利用數據庫同步session

在做多服務器session同步時我沒有用這種方法,如果非要用這種方法的話,我想過二種方法:

1,用一個低端電腦建個數據庫專門存放web服務器的session,或者,把這個專門的數據庫建在文件服務器上,用戶訪問web服務器時,會去這個專門的數據庫check一下session的情況,以達到session同步的目的。

2,這種方法是把存放session的表和其他數據庫表放在一起,如果mysql也做了集群了話,每個mysql節點都要有這張表,并且這張session表的數據表要實時同步。

說明:用數據庫來同步session,會加大數據庫的負擔,數據庫本來就是容易產生瓶頸的地方,如果把session還放到數據庫里面,無疑是雪上加霜。上面的二種方法,第一點方法較好,把放session的表獨立開來,減輕了真正數據庫的負擔

二,利用cookie同步session

session是文件的形勢存放在服務器端的,cookie是文件的形勢存在客戶端的,怎么實現同步呢?方法很簡單,就是把用戶訪問頁面產生的session放到cookie里面,就是以cookie為中轉站。你訪問web服務器A,產生了session把它放到cookie里面了,你訪問被分配到web服務器B,這個時候,web服務器B先判斷服務器有沒有這個session,如果沒有,在去看看客戶端的cookie里面有沒有這個session,如果也沒有,說明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服務器B,這樣就可以實現session的同步了。

說明:這種方法實現起來簡單,方便,也不會加大數據庫的負擔,但是如果客戶端把cookie禁掉了的話,那么session就無從同步了,這樣會給網站帶來損失;cookie的安全性不高,雖然它已經加了密,但是還是可以偽造的。

三,利用memcache同步session

memcache可以做分布式,如果沒有這功能,他也不能用來做session同步。他可以把web服務器中的內存組合起來,成為一個"內存池",不管是哪個服務器產生的sessoin都可以放到這個"內存池"中,其他的都可以使用。

優點:以這種方式來同步session,不會加大數據庫的負擔,并且安全性比用cookie大大的提高,把session放到內存里面,比從文件中讀取要快很多。

缺點:memcache把內存分成很多種規格的存儲塊,有塊就有大小,這種方式也就決定了,memcache不能完全利用內存,會產生內存碎片,如果存儲塊不足,還會產生內存溢出。

四,總結

上面三種方法都是可行的

第一種方法,最影響系統速度的那種,不推薦使用;

第二種方法,效果不錯,不過安全隱患一樣的存在;

第三種方法,個人覺得第三種方法是最好的,推薦大家使用

轉載請注明
作者:海底蒼鷹
地址:http://blog.51yip.com/server/922.html

總結

以上是生活随笔為你收集整理的web集群时session同步的3种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。