zoukankan      html  css  js  c++  java
  • tomcat集群

    通过Apache和JK插件实现tomcat负载均衡的集群。

    1、安装HTTP服务器Apache。下载双击安装httpd-2.2.25-win32-x86-openssl-0.9.8y.msi,安装后访问localhost即可看到安装成功。

    2、下载mod_jk.so(tomcat的插件提供和Apache等HTTP服务的链接)放到Apache安装目录的modules文件夹下。

    3、修改conf下的httpd.conf文件,加上一下内容,

         #加载jk模块  

         LoadModule jk_module modules/mod_jk.so


         #设置jk的配置文件 

         JkWorkersFile conf/workers.properties

      #配置JK的日志输出文件 

         JkLogFile logs/mod_jk.log
         JkLogLevel debug

         #配置负载均衡器处理那些内容
         JkMount  /*.do loadbalancer
         JkMount  /*.jsp loadbalancer

    4、在conf目录下新建JK的工作配置文件workers.properties内容如下:

      #server
      worker.list = controller
      #========tomcat1========  
      worker.tomcat1.port=11009
      worker.tomcat1.host=localhost(如果不是同一台主机,写相应iP地址)
      worker.tomcat1.type=ajp13
      worker.tomcat1.lbfactor = 1
      #========tomcat2========
      worker.tomcat2.port=12009
      worker.tomcat2.host=localhost
      worker.tomcat2.type=ajp13
      worker.tomcat2.lbfactor = 1
      #========controller,负载均衡控制器========
      worker.controller.type=lb
      worker.controller.balanced_workers=tomcat1,tomcat2
      worker.controller.sticky_session=false
      worker.controller.sticky_session_force=1
      #worker.controller.sticky_session=1

    5、安装tomcat,并复制成两份,修改tomcat配置如下。

      1)打开AJP协议配置的注解,修改tomcat1和tomcat2端口与tomcat标示与workers.properties中的配置一致

      <Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />

      <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">

      2)打开tomcat集群配置的注释:

      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

      3)修改HTTP协议链接的端口和服务的端口,保证两个tomcat的端口不一致否侧端口占用无法启动

       <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

      <Server port="9005" shutdown="SHUTDOWN">

      4)修改tomcat下centext.xml配置文件中的属性:

      <Context distributable="true">

    6、配置成功进行测试。

      在tomcat 的webappsROOT下放入test.jsp文件内容如下

      <%@ page contentType="text/html; charset=GBK" %>
      <%@ page import="java.util.*" %>
      <html><head><title>Cluster App Test</title></head>
      <body>
      Server Info:
      <%
        out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
      <%
          out.println("<br> ID " + session.getId()+"<br>");
        // 如果有新的 Session 属性设置
        String dataName = request.getParameter("dataName");
      if (dataName != null && dataName.length() > 0) {
         String dataValue = request.getParameter("dataValue");
         session.setAttribute(dataName, dataValue);
      }
      out.println("<b>Session 列表</b><br>");
      System.out.println("============================");
      Enumeration e = session.getAttributeNames();
      while (e.hasMoreElements()) {
         String name = (String)e.nextElement();
         String value = session.getAttribute(name).toString();
         out.println( name + " = " + value+"<br>");
             System.out.println( name + " = " + value);
       }
    %>
      <form action="test.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>

    7、分别启动两个tomcat,测试是否成功启动。访问localhost/test.jsp

    可以看到如下效果:

    刷新页面发现访问的tomcat变成了worker1但是session的id没有变,说明两个tomcat完成了session的复制。

    还可以添加session的值,发现两个tomcat的session的值得到了共享。配置成功。

    本文章属于本人和博客园所有,如有转载请注明出自http://www.cnblogs.com/xucheng
  • 相关阅读:
    虚拟化技术
    软件产业的知识经济 (蔡学墉)
    关于内存对齐
    Reverse Engineering
    [转]今天的操作系统 
    BasicBIOS & CMOS
    [bbk5355]第18集 Chapter 08 Handling Exceptions(01)
    [bbk1452]第1集 在Apache中使用SSL
    Linux>User Manager
    如何更新linux系统时间
  • 原文地址:https://www.cnblogs.com/xucheng/p/tomcat_team.html
Copyright © 2011-2022 走看看