默认tomcat的session是存储在内存中的,当tomcat关闭时,session会存储到文件系统中,这里使用NFS共享文件系统,将不同tomcat服务器上的指定目录共享,然后将tomcat的session持久化到指定目录,达到同步的效果。
NFS的安装及配置这里就不详述了,网上有很多教程,可以查看这篇博客
需要注意的是,在CentOS6以上,portmap已经改名了,可以安装portreserve,如果使用rpm安装,启动命令为service rpcbind start
在192.168.137.16服务器上搭建NFS服务,创建/opt/shared目录作为共享目录
编辑/etc/exports文件,将/opt/shared目录共享给另外两台服务器,具有读写权限
启动NFS
192.168.137.211以及192.168.137.243作为客户端,分别创建/opt/shared/tomcat/session,tomcat的session存储到该目录
客户端挂载共享目录
在context.xml文件中加入如下配置:
<Context> <Manager className="org.apache.catalina.session.PersistentManager" maxActiveSession="-1" minIdleSwap="0" maxIdleSwap="0" maxIdleBackup="0"> <Store className="org.apache.catalina.session.FileStore" directory="/opt/shared/tomcat/session"/> </Manager> </Context>
无论是tomcat的conf/context.xml,还是在web应用shade的META-INF目录下创建context.xml文件,都行
默认tomcat的session管理器是StandardManager,该管理器将session存储在内存中,当tomcat关闭时,将session持久化到work目录下,tomcat重启后,重新加载到内存,这里使用PersistentManager改变session的存储位置
maxActiveSession:产生的最大活动session数。如果为-1,说明没有限制。
minIdleSwap:自上次访问某个session到session可以被保存到存储介质上,并从服务器的内存中交换出来之间的时间间隔。如果为-1,说明可以在任何时间交换出来。指定值应该小于maxIdleSwap。缺省情况下这个特征是disable的
maxIdleSwap:自上次访问某个session到session应该被保存到存储介质上,并从服务器的内存中交换出来之间的时间间隔。如果为-1,则disable这个特征。如果使能了这个特征,指定值应该大于或者等于maxIdleBackup。缺省情况下这个特征是disable的
maxIdleBackup:自上次访问某个session到这个session可以被保存到存储介质上的时间间隔。以秒为单位,如果为-1,则disable这个特征。缺省情况下,这个特征是disable的
启动tomcat后测试,发现并没有什么卵用,同一个页面,多次刷新,每次的sessionid都不相同
tomcat的session还是存储在内存中的,只是在session数量超过maxActiveSession或是访问间隔时间满足minIdleSwap、maxIdleSwap才会被换出内存,存储到指定的文件,并没有实时同步
而且,tomcat集群数量多了以后,文件共享也会比较麻烦,在集群数量比较少,性能要求不是很高的情况下可以使用这种方式,提高系统可用性,另外,使用文件共享,可以解决文件上传同步的问题,比如,文件上传请求被某台tomcat处理后,一般文件会存储到应用服务器的本地目录,如果有其他请求下载上传的文件,恰好被其他服务器处理,就访问不到上传的文件,使用文件共享是解决方式之一。还是那句话,少量服务器集群、并发访问不高的时候可以使用这种方式,如果并发访问比较高,就需要专门的服务器了。
相关推荐
Apache和Tomcat的组合经常被用来搭建这样的架构,特别是在实现负载均衡和集群时。在这个场景中,session同步是一个核心问题,因为用户session数据的正确管理和共享是保持应用程序一致性和用户体验的关键。本文将深入...
Apache+Tomcat+Linux集群和均衡负载(Session同步复制
Apache+Tomcat+JK 实现集群负载均衡是一种常见的Web服务器和应用服务器的部署方式,它能够提高系统的可用性和响应速度,实现服务的高并发处理。本文将详细介绍如何配置这一环境。 首先,我们需要准备以下软件: 1. ...
总之,“Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo”是一个实践性强的教学资源,它涵盖了Web服务集群中的关键技术和最佳实践,对于学习和提升系统架构能力非常有帮助。通过深入理解和实践这个Demo,...
【Apache+Tomcat 集群与负载均衡及Session...通过以上配置,Apache+Tomcat集群可以实现高效的负载均衡和高可用性,同时通过Session绑定确保用户会话的连续性。注意定期监控和优化集群性能,以应对不断变化的业务需求。
NULL 博文链接:https://ywu.iteye.com/blog/2246306
"tomcat9+tomcat-cluster-redis-session-manager_4.0.zip"这个文件组合涉及到的是在Tomcat 9上实现负载均衡以及使用Redis作为Session管理器的高级配置。 首先,Tomcat 9是Apache Tomcat服务器的一个版本,它是Java ...
而Tomcat集群则使得多个Tomcat实例在用户看来像是一个单一的服务器,从而实现资源的高效利用。 Apache HTTP Server通过mod_jk模块与Tomcat进行通信,mod_jk负责将HTTP请求转发到适当的Tomcat实例。以下是详细的配置...
这篇文章将详细介绍如何使用Apache作为前端负载均衡器,与多台Tomcat服务器配合构建集群环境。 首先,我们要理解负载均衡的基本概念,它是一种技术,通过分散网络流量到多个服务器,避免单一服务器过载,从而提高...
3. 基于Cache的集中式Session:使用共享存储(如内存数据库)来存储会话信息,所有的节点都从共享存储中读取和更新会话信息。 本文档详细介绍了使用mod_proxy模块与Apache和Tomcat结合来实现负载均衡与集群配置的...
Apache通常通过其模块mod_proxy来实现负载均衡,它可以与Tomcat或者其他应用服务器进行集成。 在Apache中配置负载均衡,首先需要安装mod_proxy和mod_proxy_balancer模块。这些模块允许Apache作为反向代理服务器,...
### Apache+Tomcat+MySQL 的负载平衡和集群技术 在当今互联网时代,随着用户数量的激增和技术需求的多样化,如何高效地管理服务器资源、确保系统稳定性和响应速度成为了一个重要课题。Apache、Tomcat 和 MySQL 的...
在本篇文章中,我们将深入探讨如何使用Nginx、Tomcat和Memcached-Session-Manager(MSM)来构建一个集群环境,并实现Session共享。这涉及到集群搭建、分布式应用以及缓存管理等多个方面的IT知识。下面将详细展开这些...
session共享则是一个关键问题,因为用户会话数据需要在各个Tomcat实例之间同步,以确保用户在集群中的任何节点上都能保持登录状态和应用状态的一致性。 Apache Server 2.2是一款广泛应用的开源HTTP服务器,它支持...
在Linux环境中,使用Apache、Tomcat和JK模块实现负载均衡和群集是一项常见的高可用性架构设计,它能够有效地分发网络流量,提高系统的可扩展性和稳定性。Apache作为前端Web服务器,负责接收用户请求并根据配置策略将...
本文将详细介绍如何配置 Apache + Tomcat 集群,包括安装 Apache 和 Tomcat 服务器、配置 mod_jk 模块、配置 Apache 和 Tomcat 服务器、配置负载均衡控制器等。 一、安装 Apache 服务器 首先,需要安装 Apache ...
标题中的“在32位操作系统上配置apache+tomcat集群/负载均衡/session复制”涉及到的是在32位系统环境下,如何构建一个使用Apache HTTP Server作为前端负载均衡器,与多个Tomcat应用服务器协同工作的集群环境,并实现...