转载:分布式Session共享:tomcat+memcached实现session共享
原文:http://www.cnblogs.com/notDog/p/5341219.html?utm_source=tuicool&utm_medium=referral
一、前言
本文主要測試memcached實現session共享的實現方式,不討論如何讓nginx參與實現負載均衡等。
二、環境配置
本測試在Window下進行
| name | version | port |
| Tomcat1 | 7.0.68 | 127.0.0.1:8001 |
| Tomcat2 | 7.0.68 | 127.0.0.1:8002 |
| Memcached | 1.4.2 | 127.0.0.1:11211 |
?
?
?
?-
三、配置memcached-session-manager
3.1 獲取jar包
首先需要Session管理相關的包
memcached-session-manager-1.9.2.jar
memcached-session-manager-tc7-1.9.2.jar
因為用到memcached,所以還需要
spymemcached-2.10.3.jar
序列化(只測試了兩種方式,二選一即可)
kryo序列化方案(都說kryo序列化效率高)
asm-5.0.4.jar
kryo-3.0.3.jar
kryo-serializers-0.34.jar
minlog-1.3.0.jar
msm-kryo-serializer-1.9.2.jar
objenesis-1.2.jar
reflectasm-1.11.1.jar
javolution序列化方案
javolution-5.4.3.1.jar
msm-javolution-serializer-1.9.2.jar
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
打包下載:
memcached-session-manager-1.9.2_By_kryo-serializer.rar
memcached-session-manager-1.9.2_By_javolution-serializer.rar
3.2 導入Jar包
把以上生成的jar放入tomcat的lib目錄下,打開Context.xml,
如果采用javolution序列化方式,添加如下代碼:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:localhost:11211" lockingMode="auto"sticky="false" requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$" sessionBackupAsync= "false" sessionBackupTimeout= "100" copyCollectionsForSerialization="true" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" />?如果采用的是kryo序列化方式,添加如下代碼:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:localhost:11211" lockingMode="auto"sticky="false" requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$" sessionBackupAsync= "false" sessionBackupTimeout= "100" copyCollectionsForSerialization="true" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />3.3 測試結果
依次啟動memcached,tomcat1,tomcat2
在瀏覽器中分別打開:
http://localhost:8001/examples/servlets/servlet/SessionExample
Session ID: 8BB1C837F4423CE4C4F1393D14C110C5-n1?
http://localhost:8002/examples/servlets/servlet/SessionExample
Session ID: 8BB1C837F4423CE4C4F1393D14C110C5-n1?
cmd進入命令提示符,輸入
telnet 127.0.0.1 11211
連接memcached主機,輸入
stats items?
列出存入的數據列表
輸入 state cachedump 5 0 查看key值
發現,三處SessionID是一致的。
總結
以上是生活随笔為你收集整理的转载:分布式Session共享:tomcat+memcached实现session共享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模拟T1数字number
- 下一篇: 笔记 - Front End - 新知识