所需環境:兩台伺服器a和b模擬集群(兩台電腦),乙個mysql5.7,redis伺服器,demo分別部署在a和b中,a中名為demo1,b中名為demo2(為了加以區分)
mysql5.7和redis都是在b中開啟的
測試原理:demo1在a中訪問login.jsp頁面登入進去之後會在瀏覽器儲存乙個jsessionid,redis中也儲存了該sessionid(以下第乙個專案ssm-shiro實際就是demo1,完整路徑為localhost:8080/demo1/user/list),此時在a中要模擬乙個網域名稱來模擬訪問b伺服器,
在c:\windows\system32\drivers\etc目錄的hosts檔案中模擬新增乙個網域名稱
這裡192.168.1.162是b的ip,szj.qq.com是我們用來模擬訪問b伺服器的,訪問連線為szj.qq.com:8080/demo2/user/add 。
我們會看到訪問b的demo2和訪問a的demo1的sessionid是一樣的,說明session在兩台伺服器之間是共享的
若session間沒有共享,此時模擬訪問b的demo2會因為demo2專案還未登陸,沒有sessionid,會重定向到login.jsp頁面;
模擬的其實就是多台伺服器處理在同乙個session會話中處理多個請求
在做demo過程中,共享乙個mysql,redis,我的前幾篇有文章提到配置mysql共享的,如果配置好還是不行的話,在windows防火牆-高階設定-->新增規則-->新增mysql和redis的埠資訊;
如果錯誤之處,麻煩請點出,相互學習
tamcat多個應用實現session共享
由於專案需要乙個應用訪問另乙個應用進行許可權驗證,所以研究了一下session共享,session共享能夠使得乙個應用系統訪問另乙個應用系統。在乙個tomcat中部署兩個應用,設定crosscontext true,讓兩個應用可以在tomcat中交叉使用上下文環境。server.xml 然後用其中乙...
Redis實現session共享
1.session共享是基於spring redis來實現的,首先從web.xml開始說起。2.在web.xml裡面配置了乙個filter,如下 springsessionrepositoryfilter org.springframework.web.filter.delegatingfilter...
用Redis實現Session功能,實現單點登入
redis是乙個開源的使用ansi c語言編寫 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api 維基百科 一般開發中使用者狀態使用session或者cookie,兩種方式各種利弊。session 在inproc模式下容易丟失,並且引起併發問題。如果使用sq...