這篇文章大致講解了用nginx+tomcat+spring+redis實現分布式session。
由於nginx的多程序模式以及事件驅動, 它作為乙個web伺服器的效能是相當好的。 至於怎麼用它來做反向**,只需要很簡單的配置nginx.conf檔案的以下部分並且重啟nginx即可:
server ip1:port;
server ip2:port;
}server
} 這裡的ip1, ip2以及port就是你的兩台tomcat的位址。
tomcat缺省會把session儲存在記憶體中,一方面限制了最大session數量,另一方面又阻礙了做分布式拓展。 乙個解決方案就是用redis或者別的資料庫來持久化session。
在springmvc中的實現就很簡單了,只要在spring配置檔案中配置以下的bean即可:
這個配置是什麼意思呢?
首先前3個bean配置了對redis的連線和訪問,我們可以在**中直接用redistemplate去操作redis。
最後乙個bean的作用是配置web 容器(在這裡是tomcat)對session的管理方法。
分布式session共享
為什麼會出現session共享問題?客戶端與伺服器互動時會產生唯一的sessionid用於標記使用者,但是在分布式架構中,如果還是採用 session 的方式,使用者發起請求,通過 nginx 做請求 時,並不知道是 到伺服器1還是伺服器2,所以就會出現session共享問題。今天主要記錄使用 sp...
session分布式處理
在支援session複製的web伺服器上,通過修改web伺服器的配置,可以實現將session同步到其他web伺服器上,達到每個web伺服器上都儲存一致的session。1.優點 上不需要做支援和修改。2.缺點 需要依賴支援的web伺服器,一旦更換成不支援的web伺服器就不能使用了,在資料量很大的情...
分布式session共享
什麼是session 伺服器為每個使用者建立乙個會話,儲存使用者的相關資訊,以便多次請求能夠定位到同乙個上下文。當使用者請求來自應用程式的 web 頁時,如果該使用者還沒有會話,則 web 伺服器將自動建立乙個 session 物件。當會話過期或被放棄後,伺服器將終止該會話並銷毀。分布式sessio...