1. 程式人生 > >分布式session的幾種實現方式

分布式session的幾種實現方式

服務器 單點 redis 容易 穩定性 常用 str 廣播 cati

1.基於數據庫的session共享

2.基於NFS共享文件系統

3.基於memcached 的session,怎麽保證session的高可用

4.基於resin/tomcat web容器本身的session復制機制

5.基於TT/Redis 或 jbosscache 進行 session 共享。

6.基於cookie 進行session共享

<1.>

Session Replication 方式管理 (即session復制)

簡介:將一臺機器上的Session數據廣播復制到集群中其余機器上

使用場景:機器較少,網絡流量較小

優點:實現簡單、配置較少、當網絡中有機器宕掉時不影響用戶訪問

缺點:廣播式復制到其余機器有一定廷時,帶來一定網絡開銷

二、Session Sticky 方式管理

簡介:即粘性Session、當用戶訪問集群中某臺機器後,強制指定後續所有請求均落到此機器上

使用場景:機器數適中、對穩定性要求不是非常苛刻

優點:實現簡單、配置方便、沒有額外網絡開銷

缺點:網絡中有機器宕掉時、用戶Session會丟失、容易造成單點故障

三、緩存集中式管理

簡介:將Session存入分布式緩存集群中的某臺機器上,當用戶訪問不同節點時先從緩存中拿Session信息

使用場景

:集群中機器數多、網絡環境復雜

優點:可靠性好

缺點:實現復雜、穩定性依賴於緩存的穩定性、Session信息放入緩存時要有合理的策略寫入

二。Session和Cookie的區別和聯系以及Session的實現原理

Session存入在服務器端,Cookie存在與瀏覽器端

Session存的是對象,Cookie存的是字符串

Cookie存的內容較小,由於Cookie存在與瀏覽器端所以造成數據的不安全性

:如果要是實現session共享建議使用Redis數據庫來做一級緩存使用

<1>Redis數據庫是非關系型數據庫

<2>Redis數據庫常用的存入的值是Key Value的形式等,還有其他形式,具體看·Redis的官方文檔

<3>方便取值,方便存值,

分布式session的幾種實現方式