Tomcat的session集群和session服务器(3)

其中msm-javolution-serializer为一款流式化工具,能够将会话信息转成流式数据存放在memcache上,在读取时再将其还原,类似的工具有很多,在实现过程中可以根据需要选择不同的流式化工具,相关的配置也不同,参考官方文档即可。

实现过程

1)在192.168.1.121,192.168.1.122上安装memcached

[root@node1 ~]# tar xf libevent-2.0.21-stable.tar.gz

[root@node1 ~]# cd libevent-2.0.21

[root@node1 ~]# ./configure --prefix=/usr/local/libevent

[root@node1 ~]# make && make install

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

[root@node1 ~]# ldconfig

#####################################################

[root@node1 ~]#  tar xf memcached-1.4.15.tar.gz

[root@node1 ~]#  cd memcached-1.4.15

[root@node1 ~]#  ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

[root@node1 ~]#  make && make install

为memcached提供服务脚本,并配置为系统服务(脚本可以copy得到)

[root@node1 ~]# chmod +x /etc/init.d/memcached

[root@node1 ~]# chkconfig --add memcached

[root@node1 ~]# service memcached start

2)在tomcat node1和node2节点上添加虚拟主机(会话无粘性的模式下):

[root@node1 ~]# vim /usr/local/tomcat/conf/server.xml   

........

<Host  appBase="/tomcat/webapps"

unpackWARs="true" autoDeploy="true">

<Context path="/web" docBase="web" reloadable="true">

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

memcachedNodes="n1:192.168.1.121:11211,n2:192.168.1.122:11211"

sticky="false"

sessionBackupAsync="false"

lockingMode="uriPattern:/path1|/path2"

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

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

/>

</Context>

</Host>

会话有粘性的模式下:

[root@node1 ~]# vim /usr/local/tomcat/conf/server.xml   

........

<Host  appBase="/tomcat/webapps"

unpackWARs="true" autoDeploy="true">

<Context path="/web" docBase="web" reloadable="true">

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

memcachedNodes="n1:192.168.1.121:11211,n2:192.168.1.122:11211"

failoverNodes="n1"

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

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

/>

</Context>

</Host>

memcachedNodes指定后端的memcache服务器地址和端口,这里使用了两个memcache服务器,目的是起到高可用的作用。在保存session信息时需要同时写到两个memcache服务器上。

3)将需要的jar文件(类库)复制到tomcat的lib目录下:

[root@node1 msm]# ls

javolution-5.5.1.jar                memcached-session-manager-tc7-1.8.2.jar  spymemcached-2.10.2.jar

memcached-session-manager-1.8.2.jar  msm-javolution-serializer-1.8.2.jar

[root@node1 msm]# cp ./* /usr/local/tomcat/lib/

复制到另外一个节点:

[root@node1 msm]# scp ./* 192.168.1.127:/usr/local/tomcat/lib/

然后重启两个节点上的tomcat服务:

[root@node1 ~]# service tomcat restart

利用上一个案例配置的负载均衡和添加的测试页面进行测试,测试结果与上述一致。.................^_^

更多Tomcat相关教程见以下内容

CentOS 6.6下安装配置Tomcat环境 

RedHat Linux 5.5安装JDK+Tomcat并部署Java项目   

Tomcat权威指南(第二版)(中英高清PDF版+带书签)   

Tomcat 安全配置与性能优化  

Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案  

CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤  

CentOS 6.5下安装Tomcat   

Tomcat 的详细介绍请点这里
Tomcat 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/317f5bb9ad7fa1e5f2b7f1fe888d5d0e.html