session共享處理方式優缺點


1. 通過組播的方式進行集羣間的共享,

優點:web容器自身支持,配置簡單,適合小型網站。

缺點:當一臺機器的上的session變更後會將變更的數據以組播的形式分發給集羣間的所有節點,對網絡和所有的web容器都是存在開銷。集羣越大浪費越嚴重。不能做到線性的擴展。



2. 利用共享存儲來共享Session數據

所有的Web服務器都把session數據寫到共享存儲介質上,也都要來這臺服務器獲取session數據,通過這樣的方式來實現Session數據的共享。

        優點:網絡開銷較小。

缺點:受制於存儲設備的依賴,如果存儲設備down掉,就無法工作了,要做好主備同步等一些容災措施。另外,當訪問量過大時,磁盤的IO也是一個非常大的問題。



3.利用Memcache或則redis來存儲共享Session數據

所有Web服務器都把Session寫入到或則redis,也都從memcache或則redis來獲取。

優點:memcache或則redis本身就是一個分佈式緩存,便於擴展。網絡開銷較小,幾乎沒有IO。性能也更好。

缺點:受制於Memcache的容量(除非你有足夠內存存儲),如果用戶量突然增多cache由於容量的限制會將一些數據擠出緩存,另外memcache故障或重啓session會完全丟失掉。

      本人更偏向於redis



4.完全用cookie
將用戶的session數據全部存放在cookie中,很多大型站點都在這麼幹。優點是服務器架構也變得簡單,每臺web服務器都可以很獨立。沒有網絡開銷和對磁盤IO,服務器重啓也不會導致數據的丟失。缺點,cookie過於龐大會耗費單位頁面的下載時間,所以要儘量保持cookie的精簡。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章