Java中tomcat memecached session 共享同步問(wèn)題的解決辦法
事件緣由:一個(gè)主項(xiàng)目“圖說(shuō)美物”,另外一個(gè)子功能是品牌商的入駐功能,是跟主項(xiàng)目分開的項(xiàng)目,為了共享登錄的用戶信息,而實(shí)現(xiàn)session共享,倆個(gè)tomcat,一個(gè)tomcat6,一個(gè)tomcat7
web項(xiàng)目windows系統(tǒng)下實(shí)現(xiàn)session的共享
第一個(gè)步:
在倆個(gè)tomcat的context.xml這個(gè)文件中配置如下代碼:
<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來(lái)保存tomcat的session會(huì)話
寫此文的主要目的是修正一下,部分網(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
安裝方法: 將這幾個(gè)包放到/usr/local/tomcat6.0/lib里。
2、編輯tomcat的配置文件。
<這一點(diǎn)很重要,因?yàn)榫W(wǎng)上大多數(shù)文章都是說(shuō)修改server.xml里配置;我試過(guò)但最終發(fā)現(xiàn)session的信息沒有存入到memcache中,我意識(shí)到這可能是配置有問(wèn)題。目前發(fā)現(xiàn)編輯context.xml這個(gè)文件,是可以立即將session丟入到memcache中的。>
# vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- 在這個(gè)字段下添加以下內(nèi)容,在節(jié)點(diǎn)入請(qǐng)?zhí)钊肽愕膍emcached服務(wù)器ip及端口號(hào)--> <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、如何測(cè)試?
我目前的測(cè)試方法是,通過(guò)apache的mod_jk來(lái)實(shí)現(xiàn)負(fù)載均衡(之前的文章里有寫),并且啟用tomcat之間的會(huì)話復(fù)制。
這樣的結(jié)果就是,seesion ID會(huì)隨著每次用戶的提交而變換節(jié)點(diǎn),但I(xiàn)D不變。
例如:
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
下次提交就會(huì)變成: <節(jié)點(diǎn)切換了,但是ID不變>
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
結(jié)合memcache的狀態(tài): <我之前在會(huì)話沒有成功的丟到memcached這里時(shí),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ò)以上的判斷,配置 是成功的!
相關(guān)文章
java使用正則表達(dá)式過(guò)濾html標(biāo)簽
本篇文章主要介紹了java正則表達(dá)式過(guò)濾html標(biāo)簽,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11maven?scope?provided和runtime的例子說(shuō)明
這篇文章主要介紹了maven?scope?provided和runtime的例子說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12SpringBoot整合ElasticSearch的示例代碼
本篇文章主要介紹了SpringBoot整合ElasticSearch的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09Java大文本并行計(jì)算實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Java大文本并行計(jì)算如何實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Springboot配置過(guò)濾器實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Springboot配置過(guò)濾器實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08