1、 If your Tomcat instances are running on the same machine, make sure the tcpListenPort attribute is unique for each instance, in most cases Tomcat is smart enough to resolve this on its own by autodetecting available ports in the range 4000-4100。参照四中的注释 Make sure your web.xml has the element or set
2、at your 参照四 If you are using mod_jk, make sure that jvmRoute attribute is set at your Engine and that the jvmRoute attribute value matches your worker name in workers.properties .用mod_jk的情况,我们可以不管。 Make sure that all nodes have the same time and sync with NTP service! 当使用多台机器时,要保证不同机器时间的同步。原因为tomcat
3、 session复制的一些机制。具体原因看文档。 Make sure that your loadbalancer is configured for sticky session mode. 保证负载均衡软件设置为session sticky模式。四、 详细配置:1. 修改tomcat7_a/conf/server.xml, 我们采用的是默认的配置,在节点下添加:Java代码1. 3. 4. 7. 8. Channelorg.apache.catalina.tribes.group.GroupChannel9. Membershiporg.apache.catalina.tribes.mem
4、bership.McastService10. address=228.0.0.411. port=4556412. frequency=50013. dropTime=300014. Receiverorg.apache.catalina.tribes.transport.nio.NioReceiver15. auto16. 17. color=redport=4000/color18. autoBind=10019. selectorTimeout=500020. maxThreads=621. 22. Senderorg.apache.catalina.tribes.transport.
5、ReplicationTransmitter23. Transportorg.apache.catalina.tribes.transport.nio.PooledParallelSender24. /Sender25. Interceptororg.apache.catalina.tribes.group.interceptors.TcpFailureDetector26. org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor27. /Channel28. 29. Valveorg.apache.
6、catalina.ha.tcp.ReplicationValve30. filter=31. org.apache.catalina.ha.session.JvmRouteBinderValve32. 33. Deployerorg.apache.catalina.ha.deploy.FarmWarDeployer34. tempDir=/tmp/war-temp/35. deployDir=/tmp/war-deploy/36. watchDir=/tmp/war-listen/37. watchEnabled=38. 39. ClusterListenerorg.apache.catali
7、na.ha.session.JvmRouteSessionIDBinderListener40. org.apache.catalina.ha.session.ClusterSessionListener41. /ClusterCluster className= channelSendOptions= Manager className= expireSessionsOnShutdown= notifyListenersOnReplication=Channel className=Membership className= address= port= frequency= dropTim
8、e=Receiver className=tcpListenPort如果是同一机器部署两个tomcat7应用,则修改tomcat7_b为4001,以免冲突. 不同机器下,不用更改此项。 color=redport=/color autoBind= selectorTimeout= maxThreads=Sender className=Transport className=Interceptor className=Valve className= filter=Deployer className= tempDir= deployDir= watchDir= watchEnabled=Cl
9、usterListener className=2. Connector port=8081 protocol=HTTP/1.1 connectionTimeout=20000 redirectPort=8443 修改,仅为了调试方便。3. tomcat7_awebappsclusterWEB-INFweb.xml中加入4. defaultHost=localhosttomcat7_a,添加jvmRoute属性,此项为后面apache负载均衡用到。五、 复制一份tomcat7_a应用,改名为tomcat7_b.只是为了图方便,实际应该复制的是前面的cluster工程。注意以下几点配置就ok.
10、1. 修改tomcat7_a/conf/server.xml 中的Server port属性Server port=8006 shutdown=SHUTDOWN,因为是同一台机器两个tomcat应用,所以改一下。2. 修改connector port=8082 onnectionTimeout= edirectPort=,同理,为了避免同一台机器端口号冲突。部置在不同的机器是不用管的。3. 修改tomcat7_b,此项为后面apache负载均衡用到。4. 修改: className=40015. tomcat7_bebappsclusterWEB-INFweb.xml中加入import=jav
11、a.util.*3. headtitleTest/headbody5. SESSIONID:+session.getId()+);/如果有新的请求,则添加session属性Stringnamerequest.getParameter(nameif(namenull&name.length()0)valuevaluesession.setAttribute(name,value);out.print(bSessionList:/b16. Enumerationnamessession.getAttributeNames();while(names.hasMoreElements()snamena
12、mes.nextElement();session.getAttribute(sname).toString();out.println(value+System.out.println(23. %formaction=testCluster.jspmethod=post名称:inputtype=textsize=20name=值:type=submitvalue=提交/form31. 32. % page contentType= charset=GBK % page import=Cluster Test 0) String value = request.getParameter( se
13、ssion.setAttribute(name, value); out.print(Session List: Enumeration names = session.getAttributeNames(); while (names.hasMoreElements() String sname = names.nextElement(); String value = session.getAttribute(sname).toString(); out.println( sname + = + value+ System.out.println( sname + + value); fo
14、rm action= method= 名称:input type=text size=20 name= 值:input type=submit value=2. 启动tomcat7_a,启动完毕后,启动tomcat7_b 3. 进入http:/localhost:8081/cluster/testCluster.jsp 对应tomcat7_a(8081),登录几次,可看到 4. 另外打开一个浏览器,进入http:8082/cluster/testCluster.jsp对应tomcat7_b(8082),登录name:tomcat_b,value:b value可看到 5. 刷新tomcat7_a(8081)相关页面,可以看到从tomcat7_b提交的值session同步过来了,说明集群成功。第六章. Session集群工作步骤 参
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1