多个Tomcat搭建Session共享,搭建简单的Tomcat集群

        今天是2019年5.13日,写了一个书城的系统,这里面有个买家的系统和卖家的系统,买家只要注册就可以成为卖家,但是两个系统是完全分离的,即作为买家的时候,可以浏览商品所有的商品,但是在卖家系统,只能查看自己的商品。但是买家注册成为卖家(类似淘宝开店)之后也会成为卖家,所以买家和卖家的联系我就放到session中了,但是为了系统功能分离,我就把买家和卖家在idea上分了两个项目,买家发布到tomcat1上,卖家发布到tomcat2上,并没有在同一个tomcat上发布两个项目,(据说这样发布配置简单一点)。

        具体配置步骤在官方的说明文档里面有,网址如下:https://tomcat.apache.org/tomcat-8.5-doc/cluster-howto.html

注意这个是针对tomcat8.5的,如果是tomcat9或者7,请自行查找相关文档说明。

        本人英语水平实在捉急,只能看懂那么一小丢丢的一部分,就是让你添加
    <cluster classname=“org.apache.catalina.ha.tcp.simpletcpcluster”/>
    到你的<engine>或<host>元素以启用群集。然后呢,使用这种配置将启用使用DeltaManager复制Session Delta的所有到所节点。意思是,每个会话都被复制到集群中的所有其他节点。这对较小的集群很有用,但是官方说不建议将其用于较大的集群——超过4个节点左右。此外,在使用DeltaManager时,Tomcat会将会话复制到所有节点,甚至是没有部署应用程序的节点。

     然后tomcat下面conf下面的server.xml中就有这个<engine>这个标签,将cluster添加到<engine>标签下面,如下图:

<Engine name="Catalina" defaultHost="localhost">
         <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="4000"
                      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.MessageDispatchInterceptor"/>
          </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"/>

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

    具体的<cluster>中的内容在tomcat官方文档里面说的很详细,这里不一一介绍了。

将这个tomcat配置完之后,复制这份tomcat,然后新建一个tomcat2,这个用来发布另一个系统的,注意把端口号改一下,避免端口冲突。

然后打开idea,新建tomcat,然后在不同的tomcat发布不同的web项目就可以了,注意端口问题。

 

tomcat版本:tomcat8.5

java版本:1.8_191

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值