Java中tomcat memecached session 共享同步問題的解決辦法
事件緣由:一個主項目“圖說美物”,另外一個子功能是品牌商的入駐功能,是跟主項目分開的項目,為了共享登錄的用戶信息,而實現(xiàn)session共享,倆個tomcat,一個tomcat6,一個tomcat7
web項目windows系統(tǒng)下實現(xiàn)session的共享
第一個步:
在倆個tomcat的context.xml這個文件中配置如下代碼:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" lockingMode="auto" sticky="true" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" copyCollectionsForSerialization="true" />
第二步:
Tomcat6下添加的jar包:
tomcat7下添加的jar包:
PS:利用memcache來保存tomcat的session會話
寫此文的主要目的是修正一下,部分網(wǎng)上有誤的地方。
前提條件:
1、memcached正常工作了
2、tomcat 正常工作了。
1、安裝方法及安裝包
javolution-5.4.3.1.jar
memcached-2.4.2.jar
memcached-session-manager-1.3.0.jar
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
安裝方法: 將這幾個包放到/usr/local/tomcat6.0/lib里。
2、編輯tomcat的配置文件。
<這一點很重要,因為網(wǎng)上大多數(shù)文章都是說修改server.xml里配置;我試過但最終發(fā)現(xiàn)session的信息沒有存入到memcache中,我意識到這可能是配置有問題。目前發(fā)現(xiàn)編輯context.xml這個文件,是可以立即將session丟入到memcache中的。>
# vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- 在這個字段下添加以下內(nèi)容,在節(jié)點入請?zhí)钊肽愕膍emcached服務(wù)器ip及端口號--> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.254.41.197:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> </Context>
3、如何測試?
我目前的測試方法是,通過apache的mod_jk來實現(xiàn)負載均衡(之前的文章里有寫),并且啟用tomcat之間的會話復制。
這樣的結(jié)果就是,seesion ID會隨著每次用戶的提交而變換節(jié)點,但ID不變。
例如:
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
下次提交就會變成: <節(jié)點切換了,但是ID不變>
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
結(jié)合memcache的狀態(tài): <我之前在會話沒有成功的丟到memcached這里時,cmd_set 為0 >
# perl memcached-tool.pl 10.254.41.197:11211 stats
cmd_get 27
cmd_set 15
get_hits 12
# perl memcached-tool.pl 10.254.41.197:11211 stats
cmd_get 31
cmd_set 17
get_hits 14
我想通過以上的判斷,配置 是成功的!
相關(guān)文章
maven?scope?provided和runtime的例子說明
這篇文章主要介紹了maven?scope?provided和runtime的例子說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12SpringBoot整合ElasticSearch的示例代碼
本篇文章主要介紹了SpringBoot整合ElasticSearch的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09