转载:分布式Session共享:tomcat+memcached实现session共享
原文:http://www.cnblogs.com/notDog/p/5341219.html?utm_source=tuicool&utm_medium=referral
一、前言
本文主要測(cè)試memcached實(shí)現(xiàn)session共享的實(shí)現(xiàn)方式,不討論如何讓nginx參與實(shí)現(xiàn)負(fù)載均衡等。
二、環(huán)境配置
本測(cè)試在Window下進(jìn)行
| 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管理相關(guān)的包
memcached-session-manager-1.9.2.jar
memcached-session-manager-tc7-1.9.2.jar
因?yàn)橛玫絤emcached,所以還需要
spymemcached-2.10.3.jar
序列化(只測(cè)試了兩種方式,二選一即可)
kryo序列化方案(都說(shuō)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 導(dǎo)入Jar包
把以上生成的jar放入tomcat的lib目錄下,打開(kāi)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 測(cè)試結(jié)果
依次啟動(dòng)memcached,tomcat1,tomcat2
在瀏覽器中分別打開(kāi):
http://localhost:8001/examples/servlets/servlet/SessionExample
Session ID: 8BB1C837F4423CE4C4F1393D14C110C5-n1?
http://localhost:8002/examples/servlets/servlet/SessionExample
Session ID: 8BB1C837F4423CE4C4F1393D14C110C5-n1?
cmd進(jìn)入命令提示符,輸入
telnet 127.0.0.1 11211
連接memcached主機(jī),輸入
stats items?
列出存入的數(shù)據(jù)列表
輸入 state cachedump 5 0 查看key值
發(fā)現(xiàn),三處SessionID是一致的。
總結(jié)
以上是生活随笔為你收集整理的转载:分布式Session共享:tomcat+memcached实现session共享的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 模拟T1数字number
- 下一篇: 笔记 - Front End - 新知识