这几天项目部署使得我又一次和集群联系到了一起,我先说说我要做的集群的原理,(入站请求->负载均衡前端处理->tomcat服务器实例集群->会话后台共享)由于现在我们使用的apache+tomcat集群,所以在入站请求后我使用的apache的mod_jk作为负载均衡器。
(当然,除了mod_jk以外apache还有mod_proxy这种标准模式;使用联合声明DNS,域名解析形成一组IP地址;基于硬件的负载均衡器等,而我将要介绍的mod_jk是一种事实标准)
由于mod_jk使用的是粘性会话,以联合声明的方式在可用的tomcat之间进行请求的分配(根据用户的指定负载系数),确保同一个会话路由到同一个tomcat处理,由于tomcat本身不具有共享储存功能,所以会在磁盘或者RDBMS进行相关的储存。通常情况下,我们会将保存在本地磁盘上,当然可以用jdbc保存在数据库里面(理论上会话逗留的越长,被维持存储的可能性越大)。
在确定有几个tomcat用于集群,比如现在我们使用的是3个tomcat,首先创建3个start.sh(start.bat)文件,里面的内容为:
set CATALINA_BASE=/home/usr/bonc/tomcat1 (set CATALINA_BASE=c:\tomcat1)
sh startup.sh (call startup)
set CATALINA_BASE=/home/usr/bonc/tomcat2 (set CATALINA_BASE=c:\tomcat2)
sh startup.sh (call startup)
set CATALINA_BASE=/home/usr/bonc/tomcat3 (set CATALINA_BASE=c:\tomcat3)
sh startup.sh (call startup)
将conf文件夹下面的server.xml中的http连接器禁用,及注释掉
<!--<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />-->
由于使用的是AJP的链接,所以需要修改相关的ajp响应端口
tomcat1<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">……</Engine>
<Server port="8005" shutdown="SHUTDOWN">……</Server>
tomcat2<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">……</Engine>
<Server port="8105" shutdown="SHUTDOWN">……</Server>
tomcat3<Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat3">……</Engine>
<Server port="8205" shutdown="SHUTDOWN">……</Server>
在web程序里面将web.xml中添加<distributable/>用于会话共享。
接着是apache的配置,这次项目使用的是mod_jk1.2.28和apache2.2.14,在apache目录下面的conf/http.conf文件下面添加 LoadModule jk_module modules/mod_jk.so、JkWorkersFile conf/workers.properties、JkLogFile logs/mod_jk2.log,在VirtualHost下面添加JkMount /bonc/app/* bonc 然后将mod_jk.so放在modules文件夹下面,同时在conf/workers.properties中添加
worker.list=bonc
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=10
worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=8109
worker.tomcat2.lbfactor=10
worker.tomcat3.type=ajp13
worker.tomcat3.host=localhost
worker.tomcat3.port=8209
worker.tomcat3.lbfactor=10
worker.bonc.type=lb
worker.bonc.sticky_session=1
worker.bonc.balanced_workers=tomcat1,tomcat2,tomcat2
worker.controller.sticky_session_force=true
这次和前次我发表的采用了不同的方法,将会话保存在永久会话管理器里面(上次发布的配置是在内存中进行复制)。
在对应的webapps/bonc/META-INF中添加
<Context>
<Manager className="org.apache.catalina.session.PersistentManager">
<Store className="org.apache.catalina.session.FileStore" directory="/home/usr/bonc/shareddir"/>
</Manager>
</Context>
(/home/usr/bonc/shareddir文件夹用于存储共享会话信息目录)
现在可以启动apahce和tomcat,查看是否配置成功,如果你遇到其他的问题,可以与我联系
分享到:
相关推荐
首先,要理解Tomcat集群的基本概念。集群是一种通过多台服务器分担负载、提高服务可用性的技术。在Tomcat中,集群可以实现session复制,使得当一台服务器故障时,其他服务器能够接管其工作,保持服务不间断。此外,...
3. **集群配置**:Apache2和Tomcat6的集群配置涉及到多个层面。首先,要在Apache2中启用mod_jk,并配置JKWorkers文件,定义每个Tomcat实例(worker)的属性,如IP地址、端口等。然后,需要在Apache的虚拟主机配置中...
Tomcat7 集群配置 Tomcat7 集群配置是指将多个 Tomcat 服务器组合成一个集群,以提高系统的可用性和可扩展性。在这个配置中,Session 复制机制是一个非常重要的部分,它可以确保在集群中的每个节点都可以访问到同一...
2. **配置通信机制**:Tomcat集群中的节点需要相互通信,这通常通过两种方式实现:共享内存(适用于同一台物理机上的多个Tomcat实例)和基于网络的通信(如JMS,适用于跨网络的节点)。 3. **共享session**:为了...
【标题】:“Tomcat集群配置” 在Web应用的高可用性和可扩展性需求日益增长的今天,Tomcat集群成为了一个重要的解决方案。Tomcat集群能够通过负载均衡和故障转移来提高服务的稳定性和性能。以下是对Tomcat集群配置...
在进行Tomcat集群部署时,需要对多台服务器进行配置,以保证集群环境下的各项服务协调一致运行。配置内容包括但不限于权限设置、数据连接配置、模板文件以及定时调度任务等。在集群环境中,配置文件和数据的同步问题...
【Tomcat6集群和负载均衡】是Web服务器和应用程序服务器扩展和提高可用性的关键技术。Tomcat作为Apache基金会的Java Servlet容器,常常需要处理高并发请求,集群和负载均衡的实现可以有效解决这个问题。 集群是一种...
Apache2.2与Tomcat6集群配置教程 在IT行业中,服务器集群是一种常见的技术,用于提高系统的可用性和可扩展性。本教程将详细介绍如何在Apache2.2与Tomcat6环境下搭建集群,以实现负载均衡和高可用性。Apache作为前端...
本文将详细介绍如何在一机双Tomcat环境下搭建Apache+Tomcat集群,并深入解析其中的关键配置和技术细节。 #### 二、Apache+Tomcat集群的优势 1. **高可靠性(HA)**:通过集群管理软件实现在主服务器发生故障时,备份...
标题中的"memcached+tomcat6集群1.9.jar"提到了两个关键概念:Memcached和Tomcat集群,以及它们的版本号1.9。这表明我们正在处理一个与使用Memcached缓存服务来增强Tomcat 6集群性能相关的Java应用程序。 Memcached...
关于Tomcat集群部署总结 一、Tomcat集群基础概念 在深入探讨Tomcat集群的配置细节之前,我们先来了解一下Tomcat集群的基本概念。Tomcat作为一款广泛使用的Java Web容器,支持多种部署方式,其中集群部署是提高系统...
nginx 配置tomcat8集群
6. **Tomcat的配置调整**: - 在Tomcat的`server.xml`或`context.xml`中,配置Engine或Host元素以支持集群和session复制。 - 对于session复制,需要开启集群模式并在`server.xml`中添加`<Cluster>`元素。 7. **...
【标题】:Tomcat5集群中的SESSION复制详解 【描述】:本文将深入探讨Tomcat5在集群环境下的SESSION复制机制,以及如何确保SESSION的持久性和集群中的无缝切换。 【标签】:Tomcat5,复制,集群,SESSION 在...
在构建高可用的Web服务时,Tomcat集群是常见的选择,但随之而来的一个问题就是如何在集群中的各个节点间共享Session。"Tomcat8集群session共享(redis处理)"的主题正是针对这一问题,通过集成Redis作为分布式缓存来...
在构建高可用的Web服务时,Tomcat集群是常见的选择,它可以提高系统的容错性和可扩展性。然而,集群中的各个节点之间如何有效地共享用户Session信息成为了一个关键问题。为了解决这个问题,我们可以利用第三方缓存...
以上就是关于“Tomcat集群部署”的主要知识点,通过这些步骤和策略,我们可以构建一个高可用、高性能的Tomcat集群,为Web应用提供强大的支撑。在实际操作中,需根据具体业务需求和环境进行适当的调整和优化。