tomcat集群session共享

转载请标明出处:http://blog.csdn.net/wlwlwlwl015/article/details/48160433

对于高访问量、高并发量的网站或web应用来说,目前最常见的解决方案应该就是利用负载均衡进行server集群,例如比较流行的nginx+memcache+tomcat。集群之后比如我们有N个Tomcat,用户在访问我们的网站时有可能第一次请求分发到tomcat1下,而第二次请求又分发到了tomcat2下,有过web开发经验的朋友都知道这时session不一致会导致怎样的后果,所以我们需要解决一下多个tomcat之间session共享的问题。

最进在研究服务器集群的问题,网上找了很多资料,随便做点笔记

先准备环境,jdk,tomcat安装就不说了,tomcat装好后,找到它的server.xml文件中的<Engine name="Catalina" defaultHost="localhost">这一行,在这行下面加入

  1. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  
  2.                 channelSendOptions="8">  
  3.   
  4.          <Manager className="org.apache.catalina.ha.session.DeltaManager"  
  5.                   expireSessionsOnShutdown="false"  
  6.                   notifyListenersOnReplication="true"/>  
  7.   
  8.          <Channel className="org.apache.catalina.tribes.group.GroupChannel">  
  9.            <Membership className="org.apache.catalina.tribes.membership.McastService"  
  10.                        address="228.0.0.4"  
  11.                        port="45564"  
  12.                        frequency="500"  
  13.                        dropTime="3000"/>  
  14.            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"  
  15.                      address="auto"  
  16.                      port="4000"  
  17.                      autoBind="100"  
  18.                      selectorTimeout="5000"  
  19.                      maxThreads="6"/>  
  20.   
  21.            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  
  22.            <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  
  23.            </Sender>  
  24.            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  
  25.            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  
  26.          </Channel>  
  27.   
  28.          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"  
  29.                 filter=""/>  
  30.          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>  
  31.   
  32.          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"  
  33.                    tempDir="/tmp/war-temp/"  
  34.                    deployDir="/tmp/war-deploy/"  
  35.                    watchDir="/tmp/war-listen/"  
  36.                    watchEnabled="false"/>  
  37.   
  38.          <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>  
  39.          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  
  40.        </Cluster>
这个就是tomcat自带的集群配置了,我们可以在tomcat官方文档中的cluster-howto.html中看到相关注意事项,其中有一条需要注意一下:

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

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


另外:在同一台机器上安装多个tomcat时,一定要记得修改start.bat,catalina.bat中的%CATALINA_HOME%,换为你的环境变量中的名。

剩下的就是nginx或者apache的配置了,看自己选择



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值