he.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" timeout="60000"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
此处有一个Receiver port=”xxxx”,两个tomcat中此处的端口号必须唯一,即tomcat中我们使用的是port=4001,那么我们在tomcat2中将使用port=4002
8)把系统环境变更中的CATALINA_HOME与TOMCAT_HOME这两个变量去除掉
9)在每个tomcat的webapps目录下布署同样的一个工程,在布署工程前先确保你把工程中的WEB-INF\we b.xml文件做了如下的修改,在web.xml文件的最未尾即“</web-app>”这一行前加入如下的一行:
<distributable/>
使该工程中的session可以被tomcat的集群节点进行轮循复制。
4.3 启动集群
好了,现在启动tomcat1, 启动tomcat2(其实无所谓顺序的),来看效果:
分别访问http://localhost:8080/cbbs与http://localhost:9090/cbbs
确保两个tomcat节点都起来了,然后此时,我们启动Apache
然后访问直接用http://localhost/cbbs不加端口的形式访问:
用sally/abcdefg登录,瞧,应用起来了。
然后我们拿另一台物理客户端,登录这个web应用,我们可以看到:
第一个tomcat正在负责处理我们第一次登录的请求。
当有第二个HTTP请求时,另一个tomcat自动开始肩负起我们第二个HTTP请求了,这就是Load Balance。