设为首页 收藏本站
查看: 878|回复: 0

[经验分享] Apache+Tomcat实现负载均衡及集群(session同步)--五、session同步(2)使用共享文件

[复制链接]

尚未签到

发表于 2017-1-15 06:20:50 | 显示全部楼层 |阅读模式
默认tomcat的session是存储在内存中的,当tomcat关闭时,session会存储到文件系统中,这里使用NFS共享文件系统,将不同tomcat服务器上的指定目录共享,然后将tomcat的session持久化到指定目录,达到同步的效果。

NFS的安装及配置这里就不详述了,网上有很多教程,可以查看这篇博客

http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html

需要注意的是,在CentOS6以上,portmap已经改名了,可以安装portreserve,如果使用rpm安装,启动命令为service rpcbind start

在192.168.137.16服务器上搭建NFS服务,创建/opt/shared目录作为共享目录

编辑/etc/exports文件,将/opt/shared目录共享给另外两台服务器,具有读写权限



DSC0000.png




启动NFS

192.168.137.211以及192.168.137.243作为客户端,分别创建/opt/shared/tomcat/session,tomcat的session存储到该目录


客户端挂载共享目录


DSC0001.png
 

在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处理后,一般文件会存储到应用服务器的本地目录,如果有其他请求下载上传的文件,恰好被其他服务器处理,就访问不到上传的文件,使用文件共享是解决方式之一。还是那句话,少量服务器集群、并发访问不高的时候可以使用这种方式,如果并发访问比较高,就需要专门的服务器了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328445-1-1.html 上篇帖子: 解决linux下面 整合apache tomcat 不能直接访问含中文文名 报404错误 下篇帖子: php-5.2.13-Win32.zip apache_2.2.8-win32-x86-no_ssl.msi整合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表