使用Tomcat实现session共享

  1. 使用Tomcat实现session共享
  • 问题

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

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

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

使用Tomcat实现session共享

-1

  • 步骤

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

步骤一:构建memcached服

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

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

[[email protected] ~]# tar -zxvf  libevent-2.0.22-stable.tar.gz

[[email protected] ~]# cd libevent-2.0.22-stable

[ro[email protected] libevent-2.0.15-stable]# ./configure

[[email protected] libevent-2.0.15-stable]# make  &&  make install

[[email protected] ~]# echo "/usr/local/lib"  >  /etc/ld.so.conf.d/libevent.conf

[[email protected] ~]# ldconfig  

[[email protected] ~]# ldconfig –v   |  grep  --color  libevent

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

[[email protected] ~]# tar -zxvf memcached-1.4.23.tar.tar

[[email protected] ~]# cd memcached-1.4.23

[[email protected] memcached-1.4.5]# ./configure

[[email protected] memcached-1.4.5]# make && make install

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

[[email protected] ~]# 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

[[email protected] ~]# 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

[[email protected] 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

[[email protected] session]# cp *.jar /usr/local/tomcat/lib/

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

[[email protected] ~]# ~]# 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>

[[email protected] ~]# /usr/local/tomcat/bin/shutdown.sh

[[email protected] ~]# /usr/local/tomcat/bin/startup.sh

步骤三:客户端测试

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

 

操作步骤与

使用Tomcat设置Session

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