使用Tomcat实现session共享

    xiaoxiao2025-05-15  51

    使用Tomcat实现session共享 问题

    沿用练习三,通过为在Tomcat上部署msm(memcached-session-manager)实现session会话共享,本案例需要在练习三的基础上实现:

    客户端访问两台不同的后端Web服务器时,Session ID信息一致 方案

    在练习三拓扑的基础上,添加两台memcached服务器,并在两台Tomcat服务器上部署msm实现session会话共享。拓扑结构如图-1所示。

    -1

    步骤

    实现此案例需要按照如下步骤进行。

    步骤一:构建memcached服务

    注意:案例中我们需要部署两台memcached服务器,以下操作以其中一台为例。

    1)使用源码安装libevent软件包

    [root@svr10 ~]# tar -zxvf  libevent-2.0.22-stable.tar.gz

    [root@svr10 ~]# cd libevent-2.0.22-stable

    [root@svr10 libevent-2.0.15-stable]# ./configure

    [root@svr10 libevent-2.0.15-stable]# make  &&  make install

    [root@svr10 ~]# echo "/usr/local/lib"  >  /etc/ld.so.conf.d/libevent.conf

    [root@svr10 ~]# ldconfig  

    [root@svr10 ~]# ldconfig –v   |  grep  --color  libevent

    2)使用源码安装memcached软件包

    [root@svr10 ~]# tar -zxvf memcached-1.4.23.tar.tar

    [root@svr10 ~]# cd memcached-1.4.23

    [root@svr10 memcached-1.4.5]# ./configure

    [root@svr10 memcached-1.4.5]# make && make install

    3)启动服务并查看网络连接状态验证是否开启成功:

    [root@svr5 ~]# bin/memcached -p 11211  \

    >-u root  -m 100 -c 200 -vvv -n  10  -f  2  -d

    slab class   1: chunk size        64 perslab   16384

    slab class   2: chunk size       128 perslab    8192

    slab class   3: chunk size       256 perslab    4096

    slab class   4: chunk size       512 perslab    2048

    slab class   5: chunk size      1024 perslab    1024

    slab class   6: chunk size      2048 perslab     512

    slab class   7: chunk size      4096 perslab     256

    slab class   8: chunk size      8192 perslab     128

    slab class   9: chunk size     16384 perslab      64

    [root@svr5 ~]# netstat  -anptu  |  grep memcached

    tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 2839/memcached      

    tcp 0 0 :::11211 :::* LISTEN 2839/memcached      

    udp 0 0 0.0.0.0:11211 0.0.0.0:* 2839/memcached      

    udp 0 0 :::11211 :::* 2839/memcached

    步骤二:在Tomcat服务器上部署msm

    注意:这些操作在两台后端Web服务器上均需要执行,以下操作以Web1(192.168.4.205)服务器为例。

    1)安装msm

    [root@svr205 session]# ls

    asm-5.1.jar        kryo-3.0.3.jar minlog-1.3.0.jar

    memcached-session-manager-1.9.2.jar reflectasm-1.11.1.jar    

    kryo-serializers-0.34.jar  memcached-session-manager-tc8-1.9.2.jar  

    msm-kryo-serializer-1.9.2.jar   spymemcached-2.11.1.jar

    [root@svr205 session]# cp *.jar /usr/local/tomcat/lib/

    2)修改Tomcat配置文件,连接memcached服务器

    [root@svr5 ~]# ~]# vim  /usr/local/tomcat/conf/context.xml

    <Context>

    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

    memcachedNodes=“tomcatA:192.168.0.10:11211"

    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

    transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>

    </Context>

    [root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh

    [root@localhost ~]# /usr/local/tomcat/bin/startup.sh

    步骤三:客户端测试

    客户端使用浏览器访问两台不同的Web服务器。

     

    操作步骤与

    使用Tomcat设置Session

    一致,最终可以获得相关的Session ID信息。

     

     

    最新回复(0)