您的位置:首页 > 运维架构 > Tomcat

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

2018-03-07 08:17 453 查看
集群系统具有以下优点:高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。  
高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。  
负载平衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。  原理:JK插件的负载均衡器根据在worker.properties中配置的lbfactor(负载平衡因数),负责为集群系统中的Tomcat服务器分配工作负荷,以实现负载平衡。每个Tomcat服务器间用集群管理器(SimpleTcpCluster)进行通信,以实现HTTP回话的复制,比如Session。搭建过程:首先修改httpd.conf
LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.soLoadModule 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........


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: