多个Tomcat之间实现Session共享(2)

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>

<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>

这个就是tomcat自带的集群配置了,我们可以在tomcat官方文档中的cluster-howto.html中看到相关注意事项,其中有一条需要注意一下:

Make sure your web.xml has the <distributable/> element

很明显是说我们的web项目的web.xml文件中需要有<distributable/>这个元素,所以在我们刚才引入的web项目中做如上的修改。

这样我们的基本配置就完成了,因为是集群,所以在tomcat_cluster目录下拷贝一份tomcat1,并重命名成tomcat2。

多个Tomcat之间实现Session共享

注意一下需要修改的地方:

1、首先肯定是端口号,所有port字样的配置都修改一下保证两个不重复,我这里将tomcat1的端口修改为7080,tomcat2的端口修改为9080。

2、修改webapps下的项目中的index.jsp文件,因为要测试session共享所以有必要区分一下,在jsp中加入一行静态文本即可,我这里是用“This is Tomcat Server 111111”和“This is Tomcat Server 22222”来进行区分的,下面分别启动两个tomcat进行测试,我们分别运行bin目录下的startup.bat,发现第一个tomcat启动之后,第二个无法启动,这是因为启动脚本(startup.bat)没有修改,引用同样的CATALINA_HOME必然会报错,所以请注意下面的第三点。

3、为我们的这两个tomcat添加两个环境变量——CATALINA_HOME2、CATALINA_HOME3分别指向这两个tomcat的安装目录:

多个Tomcat之间实现Session共享

然后分别修改两个tomcat中bin目录下的两个脚本:startup.bat和catalina.bat,把tomcat1中的这两个文件中的%CATALINA_HOME%替换为%CATALINA_HOME2%,把tomcat2中的这两个文件中的%CATALINA_HOME%替换为%CATALINA_HOME3%,现在再启动tomcat,会发现两个tomcat都可以正常启动了,解压版的tomcat需要这样配置一下。在浏览器中检测一下tomcat是否可以成功访问:

多个Tomcat之间实现Session共享

OK,再访问一下我们的测试项目,看看session是否一致:

多个Tomcat之间实现Session共享

可以发现我们两个tomcat下的这两个项目Session完全一致,刷新也不会变,到此为止我们就算成功实现了Session共享,也就是说我们tomcat已经成功完成了任务,剩余的交给nginx就OK了。最后再强调一下,这两个testdemo的web.xml中需要加这么元素:

多个Tomcat之间实现Session共享

总结

本篇文章介绍了tomcat集群之前的必备工作——session共享的配置,以及同时启动两个tomcat解压缩版需要注意的问题,希望对看到的同学有所帮助吧,The End。

更多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中session的管理机制 

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

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