1: 安装tomcat5.5.26和jdk
2:配置第一个实例
修改conf/server.xml,删除Cluster的注释
修改<Engine name="Catalina" defaultHost="localhost">为<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
3:配置第二个实例
复制第一个实例
修改<Engine name="Catalina" defaultHost="localhost">为<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
修改相应端口,不能和第一个实例冲突,修改的端口包括:
<Server port="9005 " shutdown="SHUTDOWN"> <Connector port="9080 " maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="9443 " acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> <Connector port="9009 " enableLookups="false" redirectPort="9443 " protocol="AJP/1.3" /> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4002 " tcpSelectorTimeout="100" tcpThreadCount="6"/>
4:实例配置完成。启动实例1,启动成功后,再启动实例2,实例2启动成功后,实例1的console会发现实例2:
2008-5-27 9:55:40 org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
信息: Replication member added:org.apache.catalina.cluster.mcast.McastMember[tcp
://实例2IP:4002,catalina,实例2IP,4002, alive=0]
5:写个程序测试一下,首先修改web应用的web.xml,添加<distributable/>,二个实例都要添加。
编写一个index1.jsp文件
<%@ page contentType="text/html; charset=UTF-8" import="java.util.*"%>
<html>
<head>
<title>Cluster App Test</title>
</head>
<body>
<%
out.print(request.getLocalAddr() + " : " + request.getLocalPort());
%>
<%
out.println("<br> ID " + session.getId());
// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session 列表</b>");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value);
}
%>
<form action="index1.jsp" method="POST">名称:<input type=text size=20 name="dataName"> <br>
值:<input type=text size=20 name="dataValue"> <br>
<input type=submit>
</form>
</body>
</html>
同样,将这个文件复制到2个实例中去。大功告成!
6:测试开始
在IE浏览器中输入:http://localhost:8080/index1.jsp,会看到session的ID
在同一浏览器中再输入http://localhost:9080/index1.jsp.会看到session的ID和刚才的ID是一致的。