Tomcat Session共享解决方案

1. 背景tomcat Session 共享

有多种实现方案,在这里介绍2种,以下优缺点属个人总结。
方案1:使用 web容器本身功能,Tomcat组播
优点:配置简点,不依赖第三方存储。
缺点:广播延迟,需要Tomcat7及以上版本,需要广播端口
方案2:使用缓存实现,Redis或memcached
优点:实时性高,常用方式
缺点:需要维护第三方服务,必须保证高可用。
其他方案:
可以设置nginx或haproxy等负载方式为ip绑定,假装实现Tomcat之间的Session共享(对负载均衡要求不严)

方案1:Tomcat自带Cluster

网上比较多见不在赘述请见连接。http://blog.csdn.net/Readiay/article/details/45393435

方案2:Redis方案

1、jar下载地址:https://github.com/jcoleman/tomcat-redis-session-manager/downloads
2、将jar包放到tomcat/lib下
在这里插入图片描述
3、修改tomcat/conf/contenxt.xml配置文件,增加

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"  
host="localhost"   
port="6379"   
database="0"   
maxInactiveInterval="10800" /> 

PS:maxInactiveInterval为session过期时间,单位为秒,请项目组根据情况调整

方案3:Memcached方案

1、jar包下载:https://code.google.com/archive/p/memcached-session-manager/downloads
2、将jar包放到tomcat/lib下
Jar包下载地址可下载以下3个包
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc6-1.5.1.jar
msm-javolution-serializer-1.5.1.jar
以下2个jar包自行下载相应版本
memcached-2.5.jar
javolution-5.5.1.jar
3、修改tomcat/conf/contenxt.xml配置文件,增加

<Context reloadable="false" path="" >
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
memcachedNodes="n1:192.168.1.101:11211,n2:192.168.1.102:11211"  
sticky="false"  
sessionBackupAsync="false"  
lockingMode="auto"  
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"  
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory" />  
</Context> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值