tomcat+session

1、

複製以下jar包到兩個tomcat的安裝目錄lib中:
memcached-2.6.jar
javolution-5.5.1.jar
memcached-session-manager-1.8.2.jar
memcached-session-manager-tc7-1.8.2.jar
msm-javolution-serializer-1.8.2.jar
kryo-1.04.jar
msm-kryo-serializer-1.8.2.jar
msm-xstream-serializer-1.8.2.jar
spymemcached-2.11.4

2、

配置兩個tomcat,在conf/context.xml中加入下面內容:
<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:localhost:11211 n2:localhost:11212"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)"
sessionBackupAsync="false" sessionBackupTimeout="1800000"
copyCollectionsForSerialization="false"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" >

ps:

manager標籤屬性說明:
1、 session存儲到memchached實現方案時,他主要功能是修改tomcat的session
存儲機制,使之能夠把session序列化存放到memcached中。
className
此屬性是必須的。
memcachedNodes
此屬性是必須的。這個屬性必須包含你所有運行的memcached節點。每個節點
的定義格式爲<id>:<host>:<port>。
多個之間用空格或半角逗號隔開(如:
memcachedNodes="n1:localhost:11211,n2:localhost:11212")。
如果設置單個memcache節點<id>是可選的,所以它允許設置爲<host>:<port>
(memcachedNodes="localhost:11211")。
failoverNodes
可選項,屬性只能用在非粘連Session機制中。
此屬性必須包含memcached節點的Id,此節點是Tomcat作爲備份使用。多個之
間用空格或逗號隔開
memcachedProtocol
可選項,默認爲text。出屬性指明memcached使用的存儲協議。只支持text或者
binary。
sticky 可選項,默認爲true。
指定使用粘性的還是非粘性的Session機制。
lockingMode 可選項, 此屬性只對非粘性Session有用,默認爲none。
指定非粘性Session的鎖定策略。他的只有
(1)、none:從來不加鎖
(2)、all: 當請求時對Session鎖定,直到請求結束
(3)、auto:對只讀的request不加鎖,對非只讀的request加鎖

(4)、uriPattern:<regexp>: 使用正則表達式來比較requestRUI + "?" +queryString來決定是否加鎖,

requestUriIgnorePattern 可選項
此屬性是那些不能改備份Session的請求的正則表達式。如果像css,JavaScript,圖
片等靜態文件被同一個Tomcat和同一個應用上下文來提供,這些請求也會通過
memcached-session-manager。但是這些請求在一個http會話中幾乎沒什麼改
變,所以他們沒必要觸發Session備份,你就可以使用此屬性定義。此屬性必須符
合Java regex正則規範。
sessionBackupAsync 可選項,默認true
指定Session是否應該被異步保存到Memcached中。 如果被設置爲true,
backupThreadCount設置起作用,如果設置false,通過sessionBackupTimeout
設置的過期時間起作用。
backupThreadCount 可選項,默認爲CPU內核數。
用來異步保存Session的線程數(如果sessionBackupAsync="true")。
sessionBackupTimeout 可選項,默認100,單位毫秒
設置備份一個Session所用的時間,如果操作超過時間那麼保存失敗。此屬性只
在sessionBackupAsync="false"是起作用。默認100毫秒
sessionAttributeFilter 可選項 從1.5.0版本有
此屬性是用來控制Session中的那個屬性值保存到Memcached中的正則表達式。
鄭則表達式被用來匹配Session中屬性名稱。如
sessionAttributeFilter="^(userName|sessionHistory)$" 指定了只
有"userName"和"sessionHistory"屬性保存到Memcached中。
依賴於選擇的序列化策略。
transcoderFactoryClass 可選,默認爲
de.javakaffee.web.msm.JavaSerializationTranscoderFactory
此屬性值是創建序列化和反序列化保存到Memcached中的Session的編碼轉換器
的工廠類名。這個指定的類必須實現了
de.javakaffee.web.msm.TranscoderFactory和提供一個無參的構造方法。例如其

他的有效的實現在其他packages/jars中提供如:msm-kryo-serializer,msmxstrea-
serializer和msm-javolution-serializer.
copyCollectionsForSerialization 可選項,默認false。
customConverter 可選項
enableStatistics 可選項,默認true
用來指定是否進行統計。
enabled 可選項,默認true
指定Session保存到Memcached中是否可用和是否可以通過JMX進行改變。只用
於粘性Session。

【此後安裝memcache,可以相結合】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章