+ -
当前位置:首页 → 问答吧 → [转]实践中整理出tomcat集群和负载均衡

[转]实践中整理出tomcat集群和负载均衡

时间:2010-01-26

来源:互联网

(一)环境说明
(1)服务器有4台,一台安装apache,三台安装tomcat
(2)apache2.0.55、tomcat5.5.15、jk2.0.4、jdk1.5.6或jdk1.4.2
(3)ip配置,一台安装apache的ip为192.168.0.88,三台安装tomcat的服务器ip分别为192.168.0.1/2/4

(二)安装过程
(1)在三台要安装tomcat的服务器上先安装jdk
(2)配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径
(3)在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动
(4)tomcat的默认WEB服务端口是8080,默认的模式是单独服务,我的三个tomcat的WEB服务端口修改为7080/8888/9999
修改位置为tomcat的安装目录下的conf/server.xml
修改前的配置为
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
修改后的配置为
<Connector port="7080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
依次修改每个tomcat的监听端口(7080/8888/9999)

(5)分别测试每个tomcat的启动是否正常
http://192.168.0.1:7080
http://192.168.0.2:8888
http://192.168.0.4:9999

(三)负载均衡配置过程
(1)在那台要安装apache的服务器上安装apache2.0.55,我的安装路径为默认C:\Program Files\Apache Group\Apache2
(2)安装后测试apache能否正常启动,调试到能够正常启动http://192.168.0.88
(3)下载jk2.0.4后解压缩文件
(4)将解压缩后的目录中的modules目录中的mod_jk2.so文件复制到apache的安装目录下的modules目录中,我的为C:\Program Files\Apache Group\Apache2\modules
(5)修改apache的安装目录中的conf目录的配置文件httpd.conf,在文件中加LoadModule模块配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so
(6)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下
修改前
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host). -->

<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->

<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">
修改后
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host). -->

<!-- You should set jvmRoute to support load-balancing via AJP ie :-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">

<!-- Define the top level container in our container hierarchy
<Engine name="Catalina" defaultHost="localhost">
-->
将其中的jvmRoute="jvm1"分别修改为jvmRoute="tomcat1"和jvmRoute="tomcat2"和jvmRoute="tomcat3"

(7)然后重启三个tomcat,调试能够正常启动。
(8)在apache的安装目录中的conf目录下创建文件workers2.propertie,写入文件内容如下

  • fine the communication channel

[channel.socket:192.168.0.1:8009]
info=Ajp13 forwarding over socket
#配置第一个服务器
tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute="tomcat1"名称一致
debug=0
lb_factor=1 #负载平衡因子,数字越大请求被分配的几率越高

  • Define the communication channel
[channel.socket:192.168.0.2:8009]
info=Ajp13 forwarding over socket
tomcatId=tomcat2
debug=0
lb_factor=1

  • Define the communication channel

[channel.socket:192.168.0.4:8009]
info=Ajp13 forwarding over socket
tomcatId=tomcat3
debug=0
lb_factor=1

[status:]
info=Status worker, displays runtime information.

[uri:/jkstatus.jsp]
info=Display status information and checks the config file for changes.
group=status:

[uri:/*]
info=Map the whole webapp
debug=0
(9)在三个tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为TomcatDemo,在三个应用目录中建立相同 WEB-INF目录和页面index.jsp,index.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.print("<b>Session 列表</b>");

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="index.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>
(10)重启apache服务器和三个tomcat服务器,到此负载 均衡已配置完成。测试负载均衡先测试apache,访问http://192.168.0.88/jkstatus.jsp
能否正常访问,并查询其中的内容,有三个tomcat的相关配置信息和负载说明,访问http://192.168.0.88/TomcatDemo/index.jsp看能够运行,
能运行,则已建立负载均衡。

(四)tomcat集群配置
(1)负载均衡配置的条件下配置tomcat集群
(2)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下
修改前
<!--
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">

<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>

<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>

<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="5000"/>

<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

<Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>

<ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
</Cluster>
-->
修改后
<!-- modify by whh -->
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">

<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>

<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>

<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="5000"/>

<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

<Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>

<ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
</Cluster>
<!-- modify by whh -->
将集群配置选项的注释放开即可,如上。
(五)应用配置
对于要进行负载和集群的的tomcat目录下的webapps中的应用中的WEB-INF中的web.xml文件要添加如下一句配置
<distributable/>
配置前
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>TomcatDemo</display-name>
</web-app>
配置后
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>TomcatDemo</display-name>
<distributable/>
</web-app>


重启三个tomcat。到此tomcat的集群已配置完成。
----------------------------------------------------

以上是我自己的环境,有不完善的地方请大家帮助完成。
QQ:12647738
mail:[email protected]
王海辉

作者: 刀锋战士   发布时间: 2010-01-26

7星 娱乐时时彩/3D/P3平台成立于2008年,是澳门彩票有限公司的下属产业,官方注册,合法运营,致力于以互联网技术、支持电信和网通等,低调运营2年来 以实用简洁的网络平台和线下庞大的销售终端向彩民提供多渠道,全方位的购彩服务。
7星-平台专注于彩票行业,截止2010年即开彩票销售额占全国前10名,在遭遇壹支付快钱问题后,平台主动把会员钱反还,得到广大彩民的认可, 团队成员均具有多年彩票、互联网方面丰富的企业管理、运营,产品研发经验。凭借平台良好的声誉,渠道优势和行业专注优势,即将成为国内最优秀的彩票运营商。   7星-平台,经过近2年的实际运营,先后多次大的升级改版,如今已成为国内前5的彩票服务社区之一.7星级购彩体验,7星级服务,7星级信誉,7星级管理。7星-平台是众多彩民有目共睹最聚实力的彩票代购运营商。
一.平台简介
       7星-平台致力于良好的用户购彩体验,先进个国外服务器使网站抗DDOS能力进一步加强。线下产品包括重庆,江西等时时彩品种还有3D排列3,独特的程序界面,增加用户亲和力,操作方便,充值提现实现秒速,获得大众好评连连。2010年用户持续增加,稳定运行。
  娱乐功能进一步完善,元角互换,简介方便,实现全球各地连通网站速度反映极致快捷,丰富的内容,不断完善,喜好彩票娱乐人士首选。
      7星-平台秉承:7星级信誉,7星级服务;保障彩民的资金安全
二.平台精神
  作为互联网代购彩的龙头企业,专注所有的过程和细节,多年互联网工作经验,促使新锐职场人士加入。给了人们极致的表现和认可。口碑咨询和管理很有潜力,包括品牌的分析等等。
 在当前消除一些负面影响,增加大众购彩可信性。通过专业的口碑咨询和管理服务寻求解决问题的正确办法。平台拥有一支专业的分析和营销团队。基于公司多年的探索和研究,开发出了一整套全球领先的口碑分析与管理系统。
三.平台充提  不断最求最便捷的方式,以满足用户最佳的体验,有在线客服7个,把提现时间控制在3分钟,适合不同人士等待程度合理实现,平台一直致力与让用户体验感受不断改进,并不断完善。
四、平台奖金设置 :
1、重庆时时彩:直选1800、组六300、组三600、前后一18、前后二180、一星18、后二组选 90 不定位胆6.8  大小单双 7
2、江西时时彩:直选1800、组六300、组三600、前后一18、前后二180、后二组选 90不定位胆6.8  大小单双 7

3、黑龙江时时彩:直选1800、组六300、组三600、前后一18、前后二180、后二组选 90不定位胆6.8  大小单双 7

4、时时乐:直选1800、组六300、组三600、前后一18、前后二180、后二组选 90不定位胆6.8  大小单双 7

5、3D /P3:直选1800、组六300、组三600、前后一18、前后二180、后二组选 90不定位胆6.8  大小单双 7
6、1700系列重庆·江西·黑龙江·时时乐 直选1700元、组三570元、组六280元、前一18元、前二180元 、后一18元 、后二180元 、不定位胆 6.8元、定位胆18元

7星娱乐  7星-平台  欢迎新老朋友  7星计划群提供全天16小时的精准计划是大家利益的保障!

中国福利彩票 -- 扶老 助残 救孤 济困 赈灾




7星时时彩 7星SSC 7星福利彩票 7星福彩 7星3D 7星P3 7星体彩 中国福利彩票 中彩 福彩 时时彩SSC 3D P3
7星娱乐 7星时时彩平台 7星平台 彩票 7星计划群 7星时时彩计划 7星SSC计划 7星发财 中大奖 500万 3D预测

作者: 汝淑林   发布时间: 2010-08-04

热门下载

更多