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配置檔案,增加![]()
Tomcat Session共享解決方案
<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>