tomcat集群的两种方案

windows下的tomcat集群

方案一:mod_proxy_balance

下载资料:http://download.csdn.net/detail/senssic/6695019

1.配置apache

打开httpd.conf文件,取消下面四行的注释,用以打开代理所需的.so支持模块
 #LoadModule proxy_http_module modules/mod_proxy_http.so
 #LoadModule proxy_connect_module modules/mod_proxy_connect.so
 #LoadModule proxy_module modules/mod_proxy.so
 #LoadModule proxy_module modules/mod_proxy_blancer.so


在httpd.conf文件最后添加以下代码
 ProxyPass / balancer://proxy/  lbmethod=bytraffic #lbmethod=bytraffic表示服务器负载请求和响应的字节数,处理字节数的多少是以权值的方式来表示的
 <Proxy balancer://proxy>   
 BalancerMember http://127.0.0.1:8080/ loadfactor=3 #BalancerMember 及其后面的URL表示要配置的后台服务器、test表示该服务器下的项目名称
 BalancerMember http://127.0.0.1:8081/ loadfactor=1 #参数”loadfactor”表示后台服务器负载到由Apache发送请求的权值,该值默认为1   
 BalancerMember http://127.0.0.1:8082/ loadfactor=2
 </Proxy> 


2.配置tomcat

tomcat最好是绿色半,如果启动一闪而过需要修改javahome等环境变量

将资料中的tomcat分成三份tomcat在同一目录下


依次修改tomcat中的server.xml配置文件

tomcat1


tomcat2


tomcat三默认不变

分别在tomcat1,2,3的webapp下创建test文件夹,并创建test.jsp和WEB-INF目录下创建web.xml


在web.xml中添加如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 
  <display-name>Tomcat Manager Application</display-name>
<distributable/>
</web-app>


在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>

启动apache,依次启动tomcat1,2,3观察session以及后台打印看是否实现session复制和负载均衡(最好将配置文件中的中文注释全部去掉以免出错)

会发现被均衡到各个服务器并且实现了session复制

而且其优点是当其中一台服务器垮掉后session不会消失,而且当此服务器重新上线会被apache自动检测到并自动加入到集群中,一般就是用它了

方案二:mod_jk

将下载资料中的mod_jk-1.2.31-httpd-2.2.3.so放到对应apache2\modules文件夹中

1.修改apache配置文件

在文件的最末尾添加一行

include "D:/senssic/program/apache2/conf/mod_jk.conf"

保存

然后新建mod_jk.conf

添加:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.jsp controller

保存

新建workers.properties

添加:

worker.list = controller,tomcat1,tomcat2,tomcat3, status #server 列表
#worker.list = controller, status #server 列表
#========tomcat1========
worker.tomcat1.port=8010 #ajp13 端口号,在tomcat下server.xml配置,默认8009 
worker.tomcat1.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址 


worker.tomcat1.type=ajp13 #定向包协议 
worker.tomcat1.lbfactor = 1  #server的加权比重,值越高,分得的请求越多
#worker.tomcat1.redirect = tomcat2 #如果启用是一种备份模式,即:只有a失效时,才起作用


#worker.tomcat2.activation = able


#========tomcat2========


worker.tomcat2.port=8011  #ajp13 端口号,在tomcat下server.xml配置,默认8009 


worker.tomcat2.host=localhost  #tomcat的主机地址,如不为本机,请填写ip地址 


worker.tomcat2.type=ajp13 #定向包协议 


worker.tomcat2.lbfactor = 2  #server的加权比重,值越高,分得的请求越多


#worker.tomcat2.redirect = tomcat1 #如果启用是一种备份模式,即:只有a失效时,才起作用
#worker.tomcat2.activation = able
#========tomcat3========
worker.tomcat3.port=8009
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor=3
#========controller,负载均衡控制器======== 


worker.controller.type=lb 
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false  #stickysesssion 不启动
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
worker.status.type=status

保存

修改tomcat配置文件

tomcat1

tomcat2

启动apache,依次启动tomcat1,2,3观察session以及后台打印看是否实现session复制和负载均衡(最好将配置文件中的中文注释全部去掉以免出错)

会发现被均衡到各个服务器并且实现了session复制



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值