• 使用apache+tomcat+mod_jk.so实现集群


    首先我们需要下载apache服务器,这是win下64位下载地址

    下载地址:https://www.apachehaus.com/cgi-bin/download.plx?dli=VtWR5V1QNVzTEp0KldUMUBlVOpkVFVFdPZlStRWU

    然后我们下载 mod_jk.so

    下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

    然后我们准备两个tomcat,注意,如果你配置tomcat的环境变量,需要删除掉,不然会导致无论你启动哪个tomcat都会是启动环境变量下的那个。

    我们将两个tomcat分别明明为tomcata和tomcatb

    在tomcata中我们需要修改配置文件,打开conf/server.xml文件 ,修改端口如下:

    <!--添加jvmRoute="tomcat_a"实现集群-->
    <Engine defaultHost="localhost" name="Catalina"  jvmRoute="tomcat_a">
    <!--注释放开-->
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
    <Server port="10005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    
       <Connector connectionTimeout="20000" port="10080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <!-- 如果你这里是注释的,需要打开,并且按照我这样配置,不然可能会出错-->
       <Connector protocol="AJP/1.3"
                   address="127.0.0.1"
                   port="10009"
                   redirectPort="8443" secretRequired="" />

    同样的需要在tomcatb中做同样的配置,记得端口要区别

    在tomcata中我们需要修改配置文件,打开conf/server.xml文件 ,修改端口如下:
    <!--添加jvmRoute="tomcat_a"实现集群-->
    <Engine defaultHost="localhost" name="Catalina"  jvmRoute="tomcat_a">
    <!--注释放开-->
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
    <Server port="20005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
    
       <Connector connectionTimeout="20000" port="20080" protocol="HTTP/1.1" redirectPort="8443"/>
    
    <!-- 如果你这里是注释的,需要打开,并且按照我这样配置,不然可能会出错-->
       <Connector protocol="AJP/1.3"
                   address="127.0.0.1"
                   port="20009"
                   redirectPort="8443" secretRequired="" />

    然后需要将apache服务注册到系统中使用管理员模式打开cmd,进入apache/bin目录

    输入以下命令

    httpd.exe -k install -n "apache24"

    执行成功后就可以在服务里面看到我们注册的服务了,如下

    接着我们配置mod_jk.so

    首先将我们刚才下载的mod_jk.so复制到Apache24modules目录下,然后我们在Apache24conf目录下新建一个workers.properties,内容如下:

    worker.list=controller,tomcata,tomcatb
    
    #tomcata
    worker.tomcata.type=ajp13
    worker.tomcata.host=127.0.0.1
    worker.tomcata.port=10009
    
    
    #负载均衡的权重
    worker.tomcata.lbfactor=1
    
    #tomcata
    worker.tomcatb.type=ajp13
    worker.tomcatb.host=127.0.0.1
    worker.tomcatb.port=20009
    
    
    #负载均衡的权重
    worker.tomcatb.lbfactor=2
    
    #controller
    worker.controller.type=lb
    #负载均衡所用tomcat
    worker.controller.balanced_workers=tomcata,tomcatb
    worker.controller.sticky_session=false

    然后再听一个目录下新建mod_jk.conf文件,里面的配置如下:

    #加载mod_jk.so
    LoadModule jk_module modules/mod_jk.so
    #加载workers.properties
    JkWorkersFile conf/workers.properties
    JkMount /* controller

    然后我们再Apache中引入上面配置的文件,即在Apache24confhttpd.conf最后追加

    include conf/mod_jk.conf

    关于集群的配置就完成了,然后我们新建一个Web项目

    里面的web.xml配置如下

    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
      version="3.1"
      metadata-complete="true"
      >
    
         <welcome-file-list>
            <welcome-file>UpShow.jsp</welcome-file>
            <welcome-file>index.xhtml</welcome-file>
            <welcome-file>index.htm</welcome-file>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    
    
        <context-param>
                <param-name>GlobalParam</param-name>
                <param-value>GlobalValue</param-value>
        </context-param>
        
        <!--session共享策略-->
        <distributable/>
    </web-app>

    新建登录页面index.jsp如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>tomcata</title>
    </head>
        <body>
            <服务器地址
            <%
                out.print(request.getLocalAddr()+"==="+request.getLocalPort());
            %>
            session
            <%
                out.print(session.getId());
            %>
        </body>
    </html>

    最后将这两个项目在tomcata和tomcatb中发布,然后我们依次启动apache、tomcata和tomcatb

    访问index.jsp,效果如下

    刷新一下

    我们从tomcata到了tomcatb,表明我们的请求已经被分流了

    以上就是使用apache、tomcat和mod_jk.so实现集群的全部操作

  • 相关阅读:
    【小工具】根据定义的白名单字段进行Bean的拷贝
    【Java】Java8的Lambda入门记录
    【Java】浅谈Java IO
    【工具】我的Git学习日志
    【Java】浅谈HashMap
    【Java】Java Queue的简介
    【ZooKeeper】ZooKeeper入门流水记
    【MQTT】Mosquitto的安装与使用流水记
    【数据结构】简单的数据结构图解
    【Java多线程】JDK1.5并发包API杂谈
  • 原文地址:https://www.cnblogs.com/aierben/p/14537636.html
Copyright © 2020-2023  润新知