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
  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/xucheng/p/tomcat_team.html
Copyright © 2011-2022 走看看