一直以来,我误解认为启动了n个tomcat,则Session需要同步复制到n个Tomcat中存在,因此在启动了6个以上的Tomcat,性能会大大下降。
而实际情况下,采取Apache 加Tomcat进行负载均衡集群的时候,是可以不用将Session复制到所有的节点里,
比如有六个Tomcat实例
Tomcat1,Tomcat2,Tomcat3,Tomcat4,Tomcat5,Tomcat6
是可以配置成 三组互相复制Session的群组,
比如Tomcat1和Tomcat2互相同步Session,
比如Tomcat3和Tomcat4互相同步Session,
比如Tomcat5和Tomcat6互相同步Session.
再在Apache的mod_jk模块里,对每个worker配置上redirect和activation属性。
将Tomcat1,Tomcat3,Tomcat5做为对外正常提供服务器的Tomcat,
Tomcat2,Tomcat4,Tomcat6作为分别对应的灾难恢复的备份Tomcat.
即比如Tomcat1当机之后,Apache会自动将发给Tomcat1的请求转发到Tomcat2上,
而Tomcat2因为同步了Tomcat1的Session信息,因此从用户的角度,是感觉不出任何差异的。
单纯的Tomcat测试如下:
Tomcat配置:
Tomcat1. port=”15080″, jvmRoute=”tomcat1″,
<Membership className=”org.apache.catalina.tribes.membership.McastService”
address=”228.0.0.5″
port=”45564″
frequency=”500″
dropTime=”3000″/>
Tomcat2. port=”16080″, jvmRoute=”tomcat2″,
<Membership className=”org.apache.catalina.tribes.membership.McastService”
address=”228.0.0.5″
port=”45564″
frequency=”500″
dropTime=”3000″/>
Tomcat3. port=”17080″, jvmRoute=”tomcat3″,
<Membership className=”org.apache.catalina.tribes.membership.McastService”
address=”228.0.0.6″
port=”45564″
frequency=”500″
dropTime=”3000″/>
Tomcat4. port=”18080″, jvmRoute=”tomcat4″,
<Membership className=”org.apache.catalina.tribes.membership.McastService”
address=”228.0.0.6″
port=”45564″
frequency=”500″
dropTime=”3000″/>
Tomcat5. port=”19080″, jvmRoute=”tomcat5″,
<Membership className=”org.apache.catalina.tribes.membership.McastService”
address=”228.0.0.7″
port=”45564″
frequency=”500″
dropTime=”3000″/>
Tomcat6. port=”20080″, jvmRoute=”tomcat6″,
<Membership className=”org.apache.catalina.tribes.membership.McastService”
address=”228.0.0.7″
port=”45564″
frequency=”500″
dropTime=”3000″/>
所有的Tomcat webapp的web.xml加上<distributable />
(例如D:\Java\Tomcat2\webapps\examples\WEB-INF\web.xml ,)
测试页面为:
第一组:
http://localhost:15080/examples/servlets/servlet/SessionExample
http://localhost:16080/examples/servlets/servlet/SessionExample
第二组:
http://localhost:17080/examples/servlets/servlet/SessionExample
http://localhost:18080/examples/servlets/servlet/SessionExample
第三组:
http://localhost:19080/examples/servlets/servlet/SessionExample
http://localhost:20080/examples/servlets/servlet/SessionExample
在每一组中,打开其中任何一个链接,然后设置属性值,
都可以在访问另外一个链接的时候得到。对应的sessionid的后缀会变成对应Tomcat的jvmRoute.
(以上测试的tomcat均在同一台服务器上)
接下来再配置Apache的mod_jk.
workers.properties的内容节选如下:
(重点是redirect和activation两个属性)
worker.tomcat1.port=15009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat1.redirect=tomcat2
worker.tomcat2.port=16009
worker.tomcat2.host=10.108.20.126
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.tomcat2.redirect=tomcat1
worker.tomcat2.activation=disabled
详细参考:
http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html
备注:Tomcat6已经没有使用JGroups来实现集群复制,
而是使用Apache Tribes 来实现该效果的。
Apache Tribes的介绍在:
http://tomcat.apache.org/tomcat-6.0-doc/tribes/introduction.html
为了简便配置,因此只使用一份Tomcat,使用不同的cofig来启动,配置好的文件在:
http://618119.com/docs/Tomcat/TomcatCluster.zip
下载解压到Tomcat(例如D:\Java\apache-tomcat-6.0.14)目录里,运行对应的bat文件即可:
start15080.bat
start16080.bat
start17080.bat
start18080.bat
start19080.bat
start20080.bat
相关推荐
Apache Tomcat集群访问问题主要涉及的是在高并发或者负载均衡场景下,如何通过配置多个Tomcat实例来提高Web服务的可用性和性能。集群允许将请求分发到多个服务器上,从而实现负载均衡,并且提供了故障转移的能力,...
要构建一个Tomcat集群,首先你需要有至少两个运行的Tomcat实例。配置主要涉及以下几个方面: 1. **修改server.xml**:在每个Tomcat实例的`conf/server.xml`文件中,需要添加集群相关的配置。这包括定义`Cluster`...
基于Xen虚拟机实现Apache Tomcat集群搭建的知识点如下: 1. Xen虚拟机技术:Xen是一个开源的虚拟机监视器,允许用户在同一台物理主机上运行多个虚拟机,每个虚拟机可以运行不同的操作系统。Xen具有高性能和高扩展性...
Apache + Tomcat 集群配置 Apache + Tomcat 集群配置是指将 Apache 服务器与 Tomcat 服务器集成,以提高服务器的性能和可扩展性。本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器...
apache tomcat负载集群,appache负载,tomcat负载
该文档是我综合了无数相关文档,在我公司项目实施成功后总结的一套文档,经历了数次改动,希望能指引大家少走弯路。 如有表述不清的地方请联系我:QQ:603678227 共同进步。
Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置
Apache,Tomcat集群和负载均衡包括了apache-tomcat-5.5.29.zip,apache_2.2.4-win32-x86-no_ssl.msi,mod_jk-1.2.28-httpd-2.2.3.so,ApacheTomcat整合文档.doc,Apache,Tomcat集群和负载均衡教程.doc,Tomcat负载...
### Apache和Tomcat集群配置详解 #### 一、软件准备 在进行Apache和Tomcat集群配置之前,首先需要准备所需的软件资源。 - **Apache 2.2**: - Windows平台: 从官方网站 [http://httpd.apache.org/download.cgi]...
Apache+Tomcat集群是一种常见的Web服务器和应用服务器集群架构,用于提高网站的可用性和可扩展性。Apache作为前端服务器,负责接收客户端的HTTP请求,并根据配置的负载均衡策略将这些请求转发给后端的多个Tomcat实例...
以下是关于Apache Tomcat集群的一些关键知识点: 1. **集群概念**:在Web服务器集群中,多个服务器共享应用程序状态和用户会话,以实现故障转移、负载分担和扩展性。在Tomcat中,集群可以通过网络通信来同步session...
本文主要介绍了如何在Windows和Linux环境下搭建Tomcat集群并使用Apache作为集群的代理服务器和负载均衡器。通过本指南,读者可以学习到在不同操作系统下进行集群配置的具体步骤。 #### 二、准备工作 在开始安装之前...
反向代理负载均衡 Apache + Tomcat集群 多的我也不多说了 看文档
本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...
Apache和tomcat集群部署配置文件案例,包含Apache中的配置文件httpd.conf,mod_jk.conf,workers.properties,以及tomcat中配置文件server.xml
下面将详细介绍在64位Windows系统上配置Apache和Tomcat集群的步骤及注意事项。 **一、Apache负载均衡配置** 1. **安装Apache HTTP Server**:首先,你需要下载并安装适用于64位Windows系统的Apache服务器。确保...