单机配置tomcat 8 集群

时间:2023-02-01 08:10:42

如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块。

  本文当采用tomcat默认集群配置(<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>)时,配置的细节实际上被省略了,对于大多数应用而言,使用默认配置已经足够。

 

下载tomcat 8.0 到本地, 保存为tomcat1,  复制tomcat1 为tomcat2,

修改tomcat2的端口设置,可以参考下面这个链接修改端口。

http://crunchify.com/how-to-run-multiple-tomcat-instances-on-one-server/


单机配置tomcat 8 集群
 

 

 

examples目录下创建一个session.jsp文件,用来测试Cluster中两个Tomcat使用的Session是同一个Session,并且当其中一个Tomcat修改Session中的值时,第二个Tomcat会同样得到更新;代码如下:

Xml代码  单机配置tomcat 8 集群
  1. <html>    
  2. <head>    
  3.     <title></title>    
  4. </head>    
  5. <body>    
  6. <%    
  7.     String mydata = request.getParameter("mydata");    
  8.     if (mydata != null && mydata.length() != 0) {    
  9.         session.setAttribute("mydata", mydata);    
  10.     }    
  11.         
  12.     out.println("request.getLocalAddr(): " + request.getLocalAddr());    
  13.     out.println("<br/>");    
  14.     out.println("request.getLocalPort(): " + request.getLocalPort());    
  15.     out.println("<br/>");    
  16.     out.println("Session ID: " + session.getId());    
  17.     out.println("<br/>");    
  18.         
  19.     out.println("mydata: " + session.getAttribute("mydata"));    
  20. %>    
  21. <form>    
  22.     <input type=text size=20 name="mydata">    
  23.     <br>    
  24.     <input type=submit>    
  25. </form>    
  26. </body>    
  27. </html>   

 

现测试一下不添加cluster配置, 是什么情况。

 


单机配置tomcat 8 集群
 

 

session的值是不一样的。

 


单机配置tomcat 8 集群
 

接着我们添加cluster配置。

 

 

修改tomcat1 和tomcat2 conf/server.xml文件,将其中<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>前后的注释打开保存;

 

Xml代码  单机配置tomcat 8 集群
  1. <Engine name="Catalina" defaultHost="localhost">  
  2.   
  3.   <!--For clustering, please take a look at documentation at:  
  4.       /docs/cluster-howto.html  (simple how to)  
  5.       /docs/config/cluster.html (reference documentation) -->  
  6.     
  7.   <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>  

 

修改tomcat1 和tomcat2 的web.xml

修改其中的WEB-INF/web.xml文件,在其中<display-name>Servlet and JSP Examples</display-name>节点后添加<distributable/>表明此应用与集群服务器复制 Session;

 

Xml代码  单机配置tomcat 8 集群
  1.     <description>  
  2.       Servlet and JSP Examples.  
  3.     </description>  
  4.     <display-name>Servlet and JSP Examples</display-name>  
  5. <distributable/>  

 

重启tomcat1, tomcat2


单机配置tomcat 8 集群
 
单机配置tomcat 8 集群
 

 

可以看到session同步成功!


原文:http://laravel.iteye.com/blog/2178130