一、系统环境
1、使用APACHE+TOMCAT方法来实现集群
2、Clustery主机为Centos5.6 ,tomcat 主机为Centos一台(与APACHE为同一台)、一台Asianux、一台WIN,查看一下APACHE版本与JDK版本:
[root@localhost ~]# httpd -version
Server version: Apache/2.2.3
[root@localhost ~]# java -version
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.5) (rhel-1.16.b17.el5-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode) ##各TOMCAT主机JDK版本应尽量一致
2、时间的因素 所有节点的操作系统时间必须一致!不然会出现节点之间Session同步困难的现象,从而网站会很慢,从同一台NTP获取时间是个不错的主意。
二、具体配置 1、APACHE配置
[root@localhost ~]# vi /etc/httpd/conf.d/mod_jk.conf
<ifmodule !jk_module>
LoadModule jk_module modules/mod_jk-1.2.23-apache-2.2.x-linux-i686.so ##下载mod_jk放到/etc/httpd/modules下, 注意版本,TOMCAT官网有下载
</ifmodule>
<ifmodule jk_module>
JkWorkersFile conf/workers.properties
JkMount /* controller
</ifmodule>
建立conf/workers.properties
[root@localhost ~]# vi workers.properties
worker.list=controller,tomcat01,tomcat02,tomcat03
worker.tomcat01.port=8009
worker.tomcat01.host=localhost
worker.tomcat01.type=ajp13
worker.tomcat01.lbfactor=1 ##权重,值越大分到的请求越多
worker.tomcat02.port=8019
worker.tomcat02.host=192.168.1.190
worker.tomcat02.type=ajp13
worker.tomcat02.lbfactor=1
worker.tomcat03.port=8029
worker.tomcat03.host=192.168.1.188
worker.tomcat03.type=ajp13
worker.tomcat03.lbfactor=1
worker.controller.type=lb
worker.controller.balanced_workers=tomcat01,tomcat02,tomcat03
#worker.controller.sticky_session=1 ##粘性session,本例用复制session;
2、TOMCAT 配置 2.1.三个tomcat的AJP 端口与workers.properties中要一致
<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
2.2.Engine配置
[root@localhost ~]# vi tomcat/conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat01">##jvmRoute为本tomcat在workers.properties中的名字
2.3.Cluster配置 (sessions的配置)
[root@localhost ~]# vi tomcat/conf/server.xml
<cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="10"> ##异步模式下完成完成Session的拷贝并效验
<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"/>
<receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4031"
autoBind="100"
selectorTimeout="1000"
maxThreads="6"/>
<!-- timeout="60000"-->
<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"/>
<interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</channel>
<valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>##过滤一些不需要同步session的文件,提高反应速度;
<valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<clusterlistener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<clusterlistener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</cluster>
三、web应用程序中session复制配置 session复制配置则是在发布的web应用程序中的web.xml中添加
<display -name>Tomcat</display>
<distributable /> ##在两者之间加入这句
</web-app>
相关推荐
在IT领域,特别是Web应用服务器的管理与优化中,Tomcat集群实现Session复制是一个关键的技术点,它确保了高可用性和负载均衡,特别是在处理大量并发请求的场景下。本文将深入探讨这一主题,涵盖其原理、配置方法以及...
本篇将深入探讨Apache如何实现负载均衡,以及Tomcat集群和session复制的相关知识。 首先,Apache的负载均衡主要通过模块mod_proxy来实现。这个模块能够将客户端的HTTP请求转发到不同的后端服务器,从而达到负载均衡...
在Tomcat5中,Session复制可以通过IP多点传送(IP multicast)和IP sockets实现。IP多点传送是一种一对多的服务器通讯机制,可以让多服务器向指定IP地址和端口号进行订阅并且监听消息。IP sockets则是一种点对点的...
备注:Tomcat6已经没有使用JGroups来实现集群复制, 而是使用Apache Tribes 来实现该效果的。 Apache Tribes的介绍在: http://tomcat.apache.org/tomcat-6.0-doc/tribes/introduction.html 为了简便配置,因此只...
tomcat8 Redis集群 同步Session 中用到的jar 附带tomcat content.xml配置文件
总之,通过合理配置Tomcat集群和使用Redis作为session存储,我们可以实现跨服务器的session共享,确保用户在多台服务器间的会话一致性。这个压缩包提供了一个预配置的解决方案,对于快速搭建和测试session共享环境...
下面我们将详细探讨如何实现Nginx+Tomcat+Memcached的集群和Session共享。 **Nginx** Nginx是一款轻量级的Web服务器/反向代理服务器,以其高效的性能和低内存占用著称。在本场景中,Nginx主要负责以下任务: 1. **...
tomcat-redis集群时session共享jar工具类,支持tomcat8
在这个场景中,我们关注的是如何在Tomcat集群环境中实现Session共享,以便提高应用程序的可扩展性和可用性。标题和描述提到的“session共享包”是解决这一问题的关键。 **什么是Session?** 在Web应用中,Session是...
无意间看到tomcat 6集群的内容,就尝试配置了一下,还是遇到很多问题,特此记录。apache服务器和tomcat的连接方法其实有三种:JK、http_proxy和ajp_proxy。本文主要介绍最为常见的JK。 环境:PC2台:pc1(IP 192.168....
当我们谈论“Tomcat7集群实现session共享”时,我们关注的是如何在多个Tomcat实例之间有效地同步用户会话信息,以便在集群环境中提供高可用性和负载均衡。 首先,理解session共享的重要性。在Web应用中,session是...
为了实现Session粘滞(Sticky Sessions),我们可以配置Nginx的`upstream`模块,使其基于Session ID将请求路由到处理该Session的特定服务器,从而避免频繁在Redis中查找和复制Session,提高性能。 在实际操作中,...
Redis + Tomcat + Nginx 集群实现 Session 共享
描述虽然为空,但我们可以根据标题推测,这篇文章可能详细解释了在Tomcat 6版本中,如何配置和实现Session复制,以便在多台服务器间同步用户状态。这通常涉及到集群配置、Session管理策略以及可能的源码分析。 在...
在Tomcat集群中,为了保持用户会话在不同服务器间的同步,需要实现session复制。这可以通过以下方式实现: 1. **集群配置** - 在每个Tomcat实例的`server.xml`中,设置`<Engine>`、`<Host>`和`<Cluster>`元素。...
NULL 博文链接:https://xueweiabcok.iteye.com/blog/1841448
本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...
通过集成Apache和Tomcat,可以构建一个高效且可扩展的Web服务器集群,实现负载均衡和session复制功能。 集群技术的主要目标是提高系统的可用性和性能,通过将工作负载分散到多个服务器上,避免单点故障,并提高处理...
本教程将详细介绍如何利用Tomcat 8或9以及Redis实现Session共享,支持Redis集群,以提高系统的可伸缩性和数据一致性。 首先,我们需要理解Session的概念。Session是服务器端用于存储用户状态的一种机制,通常在用户...
"Tomcat+Redis集群实现session会话共享"这一主题,正是关注如何在使用Tomcat作为应用服务器的环境中,通过集成Redis缓存系统来构建一个高效的、高可用的会话共享解决方案。 首先,我们来理解一下`session`。在Web...