tomcat中配置memcached,共享session

Memcached Session Manager

简称msm

memcached 安装与使用

1. 编译安装,先要有gcc (yum -y install gcc)
2. 安装libevent: ./configure --prefix=/opt/libevent; make && make install
3. 安装memcached: ./configure --prefix=/opt/memcached --with-libevent=/opt/libevent/; make && make install

启动memcached: /opt/memcached/bin/memcached -d -u root -m 128 -p 11211 -c 1024
-d 后台进程
-u 启动用户
-m 使用内存大小
-p 使用端口
-c 最大连接数
   

msm配置

1. 复制jar包到tomcat/lib目录,jar分三类

1)spymemcached.jar memcached java客户端
       
2)msm相关的包
memcached-session-manager-{version}.jar       核心包
        memcached-session-manager-tc{tomcat-version}-{version}.jar   Tomcat版本相关的包


        3)序列化工具包,有多种可选方案,不设置时使用jdk自带序列化,其它可选kryo,javolution,xstream,flexjson等
msm-{tools}-serializer-{version}.jar
其它序列化工具相关包  一般第三方序列化工具不需要实现serializable接口

2. 配置Context,加入处理session的Manager  MemcachedBackupSessionManager
Context配置查找顺序:
1)conf/context.xml 全局配置,作用于所有应用
        2) conf/[enginename]/[hostname]/context.xml.default 全局配置,作用于指定host下全部应用
        3) conf/[enginename]/[hostname]/[contextpath].xml 只作用于contextpath指定的应用
        4) 应用META-INF/context.xml 只作用于本应用
        5) conf/server.xml <Host>下 作用于Context docBase指定的应用
   所以,只希望session管理作用于特定应用,最好用3,4方式设置,希望作用全体,可用1,2,5设置





3.在server.xml文件中找到<Context></Context>,将一下配置放入到该标签:

        <!-- 经常用到的生产环境sticky模式配置 -->
            <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
                    memcachedNodes="n1:(memcached1),n2:(memcached2)"
                    failoverNodes="n1"   #在另一个tomcat中改为n2,
                    requestUriIgnorePattern=".*\.(jpg|png|css|js)$"
                    memcachedProtocol="binary"
                    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
        />

猜你喜欢

转载自wangxiangyang.iteye.com/blog/2366283