blog迁移至:
http://www.micmiu.com
本文主要讲解如何在负载均衡的配置完成的基础上简单实现apache+JK+tomcat的集群配置
有关apache+JK+tomcat负载均衡的安装及配置详见:
http://sjsky.iteye.com/blog/918768
概述
- 集群方式和之前blog中的负载均衡基本配置相同, Tomcat 中的集群原理是通过组播的方式进行节点的查找并使用 TCP 连接进行会话的复制。
- 集群不同于负载平衡的是,由于集群服务需要在处理请求之间不断地进行会话复制,复制后的会话将会慢慢变得庞大,因此它的资源占用率是非常高的,如果在并发量大的应用中,复制的会话会变得相当大,而使用的总内存更是会迅速升高。
- 但集群的会话复制,增加了系统的高可用性。由于在每台服务器都保存有用户的 Session 信息,如果服务器集群中某一台宕机,应用可以自动切换到其它服务器上继续运行,而用户的信息不会丢失,这提高了应用的冗错性。
- 具体采用负载平衡还是集群,这要取决于实际应用的具体需求了。
下面讲述实现集群配置的修改:
tomcat官方参考文档:
http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html
[一]实现集群的基本条件
如果要实现session复制,需要满足以下七点:
- 所有的session里的变量要实现序列化,继承java.io.Serializable
- 去掉tomcat的conf/server.xml中Cluster的注释
- 确认server.xml中定义好ReplicationValve
- 如果tomcat实例运行同一台主机上,确保tcpListenPort的值唯一,一般情况下端口值的范围4000-4100
- 确认web应用配置文件web.xml中有标签<distributable/>
- 如果使用了mod_jk,那么<Engine name="Catalina" jvmRoute="node01" >中jvmRoute属性值要和worker.properties中的定义一致
- 确保集群中的所有节点的时间同步。
- 确保负载均衡软件设置为session sticky模式
[二]具体配置修改
基本配置参见我的另一关于负载均衡配置的blog,里面讲得很详细
1、web.xml的根节点<webapp>下增加标签<distributable/>
2、server.xml中Cluster属性片段
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false" notifyListenersOnReplication="true" />
<Channel
className="org.apache.catalina.tribes.group.GroupChannel">
<Membership
className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4" port="45564" frequency="500" dropTime="3000" />
<!-- 如果运行在同一台主机上port='4000'的值保证唯一,不能冲突 -->
<Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto" port="4000" autoBind="100" selectorTimeout="5000"
maxThreads="6" />
<Sender
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" />
</Sender>
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector" />
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor" />
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter="" />
<Valve
className="org.apache.catalina.ha.session.JvmRouteBinderValve" />
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/" watchEnabled="false" />
<ClusterListener
className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener" />
<ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener" />
</Cluster>
[三]总结
在我的配置和测试过程中得出以下几点:
1、sticky_session的值只是决定sessin是否具有粘性,并不像很多文章说的是指session复制
2、集群中tomcat的session能否复制取决于server.xml中的<Cluster>属性的定义
3、在测试中只要定义好<Cluster>属性,那么session复制就能实现了,和sticky_session的值没有关系,此时如果设置sticky_session=true,表示同时实现session粘性,即同一session会一直访问同一个tomcat,如果sticky_session=false,那么具体访问哪个tomcat是由分发控制器来决定的。
------------------------------------分------------------------------------隔------------------------------------线--------------------------------------
分享到:
相关推荐
6. **安装与配置**:配置Apache+Tomcat+JK集群通常包括以下步骤: - 安装Apache服务器并启用JK模块。 - 安装Tomcat服务器并部署应用。 - 配置JK模块的worker.properties文件,定义每个Tomcat服务器的工作节点。 ...
配置Apache+JK+Tomcat集群可以让多台服务器上的Tomcat实例共同提供服务,提高系统的稳定性和负载能力。 ##### 1. 准备工具 - **Tomcat6.0.35**:使用Tomcat6的原因在于其兼容性较好,适用于Java 1.5环境。 - **...
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
完成配置后,应通过访问Apache服务器,测试请求能否正确地被转发到Tomcat集群中的某个实例,并得到响应。这一步骤对于确保集群和负载均衡策略的正确性至关重要。 通过上述详细步骤和配置要点,我们可以构建出一个...
这个压缩包“tomcat集群”可能包含了配置文件示例、安装指南、日志文件和其他辅助资源,帮助你完成整个集群的搭建过程。通过仔细研究这些资料,你可以深入理解Apache、JK和Tomcat如何协同工作,以提供高可用性和可...
【标题】"Tomcat+Apache+JK集群"指的是在Web服务器架构中,通过Apache HTTP Server与Tomcat应用服务器结合,并利用JK模块实现负载均衡和高可用性的集群部署方式。这种方式可以提升系统的性能和稳定性,应对高并发...
#### 三、Apache+Tomcat集群配置步骤 **步骤1:环境准备** - 安装Apache。 - 安装两个Tomcat实例,并在各自的`webapps`目录下部署测试项目。 **步骤2:JK插件配置** - 将`mod_jk.so`复制到`<apache_home>/...
本文详细介绍了 Apache + Tomcat 集群配置的每一步骤,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。通过遵循本文的配置步骤,可以成功地配置 Apache...
将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用...
在“apache+tomcat+jk集群”这一主题中,我们将深入探讨如何通过Apache、Tomcat以及JK模块的结合,实现负载均衡和集群配置,从而提升系统的性能和稳定性。 ### Apache的角色 Apache是一款广泛使用的开源Web服务器...
4. **配置mod_jk**:在Apache的配置文件httpd.conf中,添加mod_jk的LoadModule语句,然后创建一个名为workers.properties的文件,定义Tomcat集群的服务器实例。每个实例包括IP地址、端口、工作目录等信息。 5. **...
### Linux环境下Apache+Tomcat+JK集群配置详解 #### 一、集群基础知识 集群技术是提升系统服务能力和高可用性的关键技术之一。通过将多台独立的服务器组织成一个集群,可以实现故障无缝迁移,即当集群中某台服务器...
Apache+Jboss(Tomcat)集群配置是一种常见的高可用性和负载均衡解决方案,它通过在前端部署Apache服务器,中间层配置多个Jboss或Tomcat应用服务器,后端连接统一的数据库来实现系统的扩展性和稳定性。以下是配置这个...
jk+apce+tomcat 整合 实现tomcat负载均衡 tomcat集群。让tomcat处理.jsp动态页面,apache处理静态页面。平且实现在一个IP下提供多个站点服务。 里面包括怎样配置apache虚拟机文件 怎样配置tomcat的虚拟机文件 花了我...
Apache2.4、Tomcat8.0以及JK模块的结合使用是实现Web服务器...在实际操作中,需对Apache和Tomcat的配置有深入理解,并掌握JK模块的安装和配置方法。通过这种方式,你可以轻松地扩展服务集群,以应对高并发访问的挑战。
在配置Apache+Tomcat集群时,主要涉及以下几个关键步骤: 1. **安装与准备**: - 安装Apache HTTP Server和Tomcat。在示例中,使用的版本是Apache 2.0.55和Tomcat 5.5.17,但实际操作时应使用最新稳定版本。 - ...
本资源包含了文章Apache2.2.x + Tomcat6.x + JK 集群配置,http://blog.csdn.net/qq396229783/article/details/74295797里面所用到的软件配置