TOMCAT55集群与负载均衡部署配置文档Word下载.docx
- 文档编号:16584280
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:15
- 大小:570.42KB
TOMCAT55集群与负载均衡部署配置文档Word下载.docx
《TOMCAT55集群与负载均衡部署配置文档Word下载.docx》由会员分享,可在线阅读,更多相关《TOMCAT55集群与负载均衡部署配置文档Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。
有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。
只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。
2、内部通信:
为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体信息、服务实体间任务执行上下文信息的通信。
具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。
内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。
1.2.2负载均衡与故障复原
决定把Apachehttpd当成web服务器,而且使用mod_jk2将请求传送给Tomcat,则可以使用mod_jk2的负载均衡与容错功能。
在集群系统中,带有mod_jk2的Apachehttpd可实现以下功能:
(1)将请求分配至一个或多个Tomcat实例上你可以在mod_jk2的workers.properties文件中,设定许多Tomcat实例,并赋于每个实例一个lb_factor值,以作为请求分配的加权因子。
(2)侦测Tomcat实例是否失败当Tomcat实例的连接器服务不再响应时,mod_jk2会及时侦测到,并停止将请求送给它。
其他的Tomcat实例则会接受失效实例的负载。
(3)侦测Tomcat实例在失效后的何时恢复因连接器服务失效,而停止将请求分配给Tomcat实例之后,mod_jk2会周期性地检查是否已恢复使用性,并自动将其加入现行的Tomcat实例池中。
1.2.3SESSION复制方式
复合会话复制:
对于tomcat的集群有两种方式,这个主要是针对session而言的。
一种就是sticky模式,即黏性会话模式;
另外一种就是session复制模式了。
所谓sticky模式就是说同一个用户的访问请求都被派送到同一个tomcat实例上,这样我们就无须在多台服务器之间实现session共享了,这是其好处,不好的地方就是不能实现failureover了,一旦用户访问的机器挂掉,那么其session就会丢失。
而session复制模式就可以很好的解决failureover的问题,即使某一台web服务器挂掉了,用户的请求还会被负载到其他的web服务器上,而且session也被复制了,这样对用户而言就像是在同一台机器上操作一样,不好的地方就是session复制需要系统资源和网络的开销。
针对这两种方式的弊端和好处,可以采用将两种方式结合的方式来达到更好的效果,那就是sticky+session复制模式了。
用户的请求按照sticky方式被分发到同一个web服务器上,同时tomcat在后台做异步复制(非同步)session到其他web服务器,这样我们使用sticky的简便性,同时又有了一定的容错能力。
、
2集群操作说明
2.1环境说明
(1)服务器有3台,一台安装apache和tomcat,两台安装tomcat。
都是WindowsServer2003操作系统。
(2)软件:
apache2.0.55、tomcat5.5.23、jk2.0.5、jdk1.5
(3)环境配置
序号
局域ip
操作系统
用途
应用软件
1
10.0.42.243
WindowsServer2003中文企业版
对外统一WEB服务器:
tomcat1
Apache和Tomcat服务
3
10.0.42.210
Tomcat服务器:
tomcat2
Tomcat服务
2
10.0.42.237
tomcat3
2.2安装tomcat
(1)在三台要安装tomcat的服务器上先安装jdk1.5
(2)配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径。
(3)在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动
(4)tomcat的默认WEB服务端口是8080,默认的模式是单独服务,我的三个tomcat的WEB服务端口修改为81/82/83
修改位置为tomcat的安装目录下的conf/server.xml
修改前的配置为
<
Connectorport="
8080"
maxHttpHeaderSize="
8192"
maxThreads="
150"
minSpareThreads="
25"
maxSpareThreads="
75"
enableLookups="
false"
redirectPort="
8443"
acceptCount="
100"
connectionTimeout="
20000"
disableUploadTimeout="
true"
/>
修改后的配置为
81"
依次修改每个tomcat的监听端口(81/82/83)
(5)分别测试每个tomcat的启动是否正常
http:
//10.0.42.243:
81
//10.0.42.237:
82
//10.0.42.210:
83
(三)安全Appache服务器
(1)安装apache的服务器上安装apache2.0.55,我的安装路径为默认C:
\ProgramFiles\ApacheGroup\Apache2
(2)安装后测试apache能否正常启动,调试到能够正常启动http:
//10.0.42.243
(3)下载amod_jk-1.2.28-httpd-2.2.3.so,重命名为:
mod_jk2.so。
地址:
//www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.28/mod_jk-1.2.28-httpd-2.2.3.so
(4)将解压缩后的目录中的modules目录中的mod_jk.so文件复制到apache的安装目录下的modules目录中,本文为C:
\ProgramFiles\ApacheGroup\Apache2\modules
2.3负载均衡配置
(1)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下,红色标记部分。
a)修改前
!
--AnEnginerepresentstheentrypoint(withinCatalina)thatprocesses
everyrequest.
TheEngineimplementationforTomcatstandalone
analyzestheHTTPheadersincludedwiththerequest,andpassesthem
ontotheappropriateHost(virtualhost).-->
--YoushouldsetjvmRoutetosupportload-balancingviaAJPie:
Enginename="
Standalone"
defaultHost="
localhost"
jvmRoute="
jvm1"
>
-->
--Definethetoplevelcontainerinourcontainerhierarchy-->
Catalina"
b)修改后
-->
tomcat1"
--Definethetoplevelcontainerinourcontainerhierarchy
将三个Tomcat的jvmRoute="
分别修改为jvmRoute="
和jvmRoute="
tomcat2"
tomcat3"
(2)然后重启三个tomcat,调试能够正常启动。
(3)修改Appach配置文件,在apache的安装目录中的conf在apache安装目录下conf目录中找到http.conf在文件最后添加:
include"
C:
\ProgramFiles\ApacheGroup\Apache2\conf\mod_jk.conf"
(4)在apache的安装目录中的conf新建文件mod_jk.conf文件,内容如下
#加载mod_jkModule
LoadModulejk_modulemodules/mod_jk-apache-2.0.55.so
#指定workers.properties文件路径
JkWorkersFileconf/workers.properties
#指定那些请求交给tomcat处理,"
controller"
为在workers.propertise里指定的负载分配控制器
JkMount/*.jspcontroller
JkMount/*.htmlcontroller
JkMount/*.actioncontroller
JkMount/*.docontroller
(5)在apache的安装目录中的conf目录下创建文件workers2.propertie,写入文件内容:
worker.list=controller,tomcat1,tomcat3,tomcat2#server列表#========tomcat1========
worker.tomcat1.port=8009#ajp13端口号,在tomcat下server.xml配置,默认8009
worker.tomcat1.host=10.0.42.243#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1#server的加权比重,值越高,分得的请求越多
worker.tomcat2.port=8009
worker.tomcat2.host=10.0.42.210
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.tomcat3.port=8009
worker.tomcat3.host=10.0.42.237
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor=1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat3,tomcat2#指定分担请求的tomcat
worker.controller.sticky_session=1#两种方式复制会话。
(6)在三个tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为LEAPClient在三个应用目录中建立相同WEB-INF目录和页面test.jsp的页面内容如下
<
%@pagecontentType="
text/html;
charset=GBK"
%>
%@pageimport="
java.util.*"
html>
head>
title>
ClusterAppTest<
/title>
/head>
body>
ServerInfo:
%
out.println(request.getLocalAddr()+"
:
"
+request.getLocalPort()+"
br>
"
);
%>
out.println("
ID"
+session.getId()+"
//如果有新的Session属性设置
StringdataName=request.getParameter("
dataName"
if(dataName!
=null&
&
dataName.length()>
0){
StringdataValue=request.getParameter("
dataValue"
session.setAttribute(dataName,dataValue);
}
b>
Session列表<
/b>
System.out.println("
============================"
Enumeratione=session.getAttributeNames();
while(e.hasMoreElements()){
Stringname=(String)e.nextElement();
Stringvalue=session.getAttribute(name).toString();
out.println(name+"
="
+value+"
System.out.println(name+"
+value);
formaction="
test.jsp"
method="
POST"
名称:
inputtype=textsize=20name="
值:
inputtype=submit>
/form>
/body>
/html>
(10)重启apache服务器和三个tomcat服务器,到此负载均衡已配置完成。
测试负载均衡先测试apache,访问http:
//10.0.42.243/test.jsp能否正常访问,并能运行,则已建立负载均衡。
2.4集群配置
负载均衡配置的条件下配置tomcat集群
(1)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下
修改前
--
ClusterclassName="
org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="
org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="
useDirtyFlag="
notifyListenersOnReplication="
Membership
className="
org.apache.catalina.cluster.mcast.McastService"
mcastAddr="
228.0.0.4"
mcastPort="
45564"
mcastFrequency="
500"
mcastDropTime="
3000"
/>
Receiver
org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="
auto"
tcpListenPort="
4001"
tcpSelectorTimeout="
tcpThreadCount="
6"
Sender
org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="
pooled"
ackTimeout="
5000"
ValveclassName="
org.apache.catalina.cluster.tcp.ReplicationValve"
filter="
.*\.gif;
.*\.js;
.*\.jpg;
.*\.png;
.*\.htm;
.*\.html;
.*\.css;
.*\.txt;
DeployerclassName="
org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="
/tmp/war-temp/"
deployDir="
/tmp/war-deploy/"
watchDir="
/tmp/war-listen/"
watchEnabled="
ClusterListenerclassName="
org.apache.catalina.cluster.session.ClusterSessionListener"
/Cluster>
修改后
--modifybywhh-->
tr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TOMCAT55 集群 负载 均衡 部署 配置 文档