今天是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