apache2.4+tomcat实现集群的搭建

集群系统具有以下优点:

高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。  
高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。  
负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。  

原理:

JK插件的负载均衡器根据在worker.properties中配置的lbfactor(负载平衡因数),负责为集群系统中的Tomcat服务器分配工作负荷,以实现负载平衡。每个Tomcat服务器间用集群管理器(SimpleTcpCluster)进行通信,以实现HTTP回话的复制,比如Session。

搭建过程:

首先修改httpd.conf


LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so


LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

##下面这类模块,是选择负载请求分发的方式的,应该是**选且只能选一个**,按需要解开注释吧

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so

#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so

#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so


Include conf/extra/httpd-vhosts.conf

#在文档的最后加上负载均衡配置

ProxyRequests Off

<proxy balancer://cluster>

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=tomat8_1

BalancerMember ajp://127.0.0.1:8010 loadfactor=1 route=tomat8_2

</proxy>

#注意,ajp是协议,tomcat默认会有一个支持ajp协议的<connector>,IP后面的端口指的是tomcat中ajp连接器的端口

#route一会儿要和tomcat里面的配置对应


修改httpd/conf/extra/httpd-vhosts.conf文件

//注释或删除原来的VirtualHost配置,然后作以下配置

<VirtualHost *:80>

ServerAdmin 127.0.0.1

ServerName 127.0.0.1

ServerAlias 127.0.0.1

ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On

ProxyPassReverse / balancer://cluster/

ErrorLog "logs/lb-error.log"

CustomLog "logs/lb-access.log" common

</VirtualHost>

修改2个tomcat的server.xml

<!-- 在引擎上配置jvmRoute和httpd.conf中的route一样就行了,另一个tomcat也要记得配置 -->

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

写一个测试jsp

<%@ page contentType="text/html; charset=GBK" %>  
<%@ page import="java.util.*" %>  
<html><head><title>Cluster Test</title></head>  
<body>  

<h3>this is tomcat1!!</h3>
<%  
  out.println("<p> SESSION ID : " + session.getId()+"</p>"); 
  String name = request.getParameter("name");  
  if (name != null && name.length() > 0) {  
     String value = request.getParameter("value");  
     session.setAttribute(name, value);  
  }    
    out.print("<table border = '1'>");    
    out.print("<tr><th>session key </th><th>session value </th></tr>"); 
    Enumeration<String> names = session.getAttributeNames();  
    while (names.hasMoreElements()) {  
        String key = names.nextElement();
        String value = session.getAttribute(key).toString();
        System.out.print(key + " --- " + value);
        out.print("<tr><td>"+key+"</td><td>"+value+"</td></tr>"); 
   }  
   out.print("</table>");
%> 
<br />
<form action="test.jsp" method="post">  
session key :<input type=text name="name">  
session value:<input type=text name="value">  
<input type=submit value="添加">  
</form>  
</body>  
</html>

测试结果



此时使用的2个tomcat的真实路径,还没有进行转发,应该将路径写成http://127.0.0.1/xsdxch/test.jsp,由于前面配置的负载因子为1,所第一次是tomcat8_1,第二次是tomcat8_2,第三次是tomcat8_1........




参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:程序猿惹谁了 设计师:我叫白小胖 返回首页

打赏作者

前方太黑暗

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值