tomcat 集群,session丢失,黏贴,辅助,session共享总结

还是要先说明下: 以下内容,为总结归整,以及给自己留个笔记!
负载均衡集群
这里使用apache+tomcat负载均衡集群
这里也简单的写下他们的配置,方式很多,写下我项目中的配置;有问题可以一起交流!
apache配置!
KeepAlive on
KeepAliveTimeout 3 这个算一个优化配置吧!详情了解可以参考这篇文章


ProxyRequests Off   
<Proxy balancer://myCluster>    
    BalancerMember http://localhost:8080/test loadfactor=2 route=tomcat8
    BalancerMember http://localhost:9080/test loadfactor=1 route=tomcat81
</Proxy>
<VirtualHost *:80>    
    ServerName 192.168.1.35
    <!--其他配置可以参考apache官网-->
    ProxyPass / balancer://myCluster/ stickysession=JSESSIONID|jsessionid nofailover=On
    ProxyPassReverse / balancer://myCluster/
    ProxyPassReverseCookiePath /sufulo /
</VirtualHost>

tomcat配置其他就不多说,这是需要增加的

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="8">
     <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>

          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="auto"
                      port="4001"
                      autoBind="100"
                      selectorTimeout="5000"
                      maxThreads="6"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
          </Channel>

          <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"/>
          <!-- tocmat8是没有这个属性的 <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>-->
          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

项目中使用到登录,所以存在session辅助和黏贴的问题:
使用的第一个方案是apache自己的,可是问题有点严重,请求频率过高,切换tomcat的时候倒置session改变!找了一会发现这个问题网上资料太少,自己又不是大牛,就放弃了。
想到了另外一种解决方案session共享
第一次本打算使用tomcat8+redis
结果tomcat-redis-session-manager暂时不支持tmcat8的session共享,支持tomcat8一下的!网上资料也很多!就不总结它了。
后来选择memcache来做session共享
应为系统版本centos
先检查是否安装过memcache

memcached -h 

然后安装

yum -y install memcached

通过systemctl start/stop/restart memcached.service命令来完成启动、关闭、重启memcached服务
重启服务器!
执行memcached-tool 127.0.0.1:11211 stats
检查是否安装成功
然后就是修改context.xml文件了。

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"   
                        memcachedNodes="n1:127.0.0.1:11211"   
                        sticky="false"
                        sessionBackupAsync="false"
                        lockingMode="none"
                        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                        transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/> 

配置都OK了,就差最后一步了!导入jar包呗。
我这边已经上传了一份了哈哈需要分才可以下载《<->》可以提供下地址
那个如果不嫌麻烦我截图下大家可以自己去找找找。就这些了,放到tomcat lib目录下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值