tomcat與memcached-session-manager共享session測試

簡介

看書剛好看到集群session共享,總覺得只看不做,不能確定這到底是怎么運行的.所以就做了這個測試.有關Memcached-Session-Manager,Memcached,以及集群session共享等相關知識,請自行補充.本次就簡單記錄下測試過程.
有關其他的方式以及其他的情況,本文不做說明,有需要的話,會再寫其他情況和方式下的文章.

環境說明

  • 本機OSX 10.11,tomca7.0.57,memcached-1.4.24
  • 虛擬機Ubuntu16.04,tomca7.0.57,memcached-1.4.24
  • 使用non-sticky sessions(非粘性session)
  • 序列化:使用默認,java進行序列化,由memcached-session-manager.jar這個jar包來提供方法.
  • 有關粘性和非粘性的區別以及序列化等不做解釋.

具體步驟

安裝jdk,memcached,tomcat

不做詳細說明

放jar包

將如下相關jar包分別放置到兩臺機器的tomcat $CATALINA_HOME/lib/目錄中.

修改tomcat配置文件

兩臺機器分別修改tomcat $CATALINA_HOME/conf/context.xml文件,添加如下代碼到Context節點下:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
        memcachedNodes="n1:192.168.110.197:11211,n2:192.168.110.198:11211"
        sticky="false"
        sessionBackupAsync="false"
        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
 />

部署Web項目到tomcat

新建測試用的web項目,并部署到兩臺tomcat中.測試代碼簡單如下:

<body>
    Session ID:<%=session.getId()%> <br>
    IP:<%=request.getServerName()%> <br>
    Port:<%=request.getServerPort()%>
</body>

啟動兩臺機器的memcached

memcached -m 32 -p 11211 -d

啟動兩臺機器的tomcat

查看tomcat信息tail -f catalina.out未報錯,看到類似如下信息就啟動成功

信息: --------
-  finished initialization:
- sticky: false
- operation timeout: 1000
- node ids: [n1, n2]
- failover node ids: []
- storage key prefix: null
--------

訪問測試頁面

分別訪問兩臺機器的測試頁面:

  • 同一個瀏覽器
  • 兩個瀏覽器
  • 結束掉一個機器的memcached進程在訪問等等

同一個瀏覽器不同標簽頁訪問192.168.110.197和192.168.110.198 得到的sessionid都是一樣的:

Session ID:39D5E175513B4496C136F5E1554478CD-n1 
IP:192.168.110.197 
Port:8080

Session ID:39D5E175513B4496C136F5E1554478CD-n1 
IP:192.168.110.198 
Port:8080

關閉ip為197的memcached進程之后,刷新頁面:

Session ID:39D5E175513B4496C136F5E1554478CD-n2 
IP:192.168.110.197 
Port:8080

Session ID:39D5E175513B4496C136F5E1554478CD-n2 
IP:192.168.110.198 
Port:8080

測試成功.

參考

https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#introduction

http://laoxu.blog.51cto.com/4120547/1566477

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容