nginx+tomcat7+memcached
tomcat/conf/server.xml下Context標簽下添加
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
? ? ? ? ?memcachedNodes="n1:127.0.0.1:11211"?
? ? ? ? ?sticky="false"?
? ? ? ? ?lockingMode="auto"
? ? ? ? ?sessionBackupAsync="false"
? ? ? ? ?requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
? ? ? ? ?sessionBackupTimeout="1000"
? ? ? ? ?transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>
在tomcat的lib下添加jar
Manager標簽屬性說明
1.className? 必須
類名:de.javakaffee.web.msm.MemcachedBackupSessionManager
2.memcachedNodes? 必須
memcached節點:此屬性應該包含所有運行的memcached節點或者membase bucket的uri地址,每一個memcached節點的屬性定義格式為<id>:<host>:<port>,多個節點定義直接使用空格或者逗號分隔,形如:memcachedNodes="n1:app01:11211,n2:app02:11211",如果只有單個的memcached節點,則<id>是可選項,只需配置<host>:<port>即可,形如:memcachedNodes="localhost:11211"。
如果我們配置的是membase,那么從1.6.0版本開始,我們可以配置指定一個或者多個membase bucket uris,形如:http://host1:8091/pools,http://host2:8091/pools。Bucket 名稱和密碼通過屬性username,password來定義。membase buckets連接需要遵循memcached協議,傳輸數據通過二進制流方式。
3.failoverNodes 可選項
故障轉移節點:可選項,對非黏性session不可用,屬性必須包含memcached節點集群的所有ids。節點id之間用空格或者逗號分隔。
4.username 可選項
從1.6.0版開始使用,并且是可選的。用來進行membase bucket或者SASL驗證,密碼可以為空。
5.password 可選項
從1.6.0版開始使用,并且是可選的。用來進行membase bucket或者SASL驗證,密碼可以為空。
6.memcachedProtocol??? 可選項
定義memcached協議,默認使用text文本,出屬性指明memcached使用的存儲協議。只支持text或者binary。
7.sticky??? 可選項
定義session方式為黏性或非黏性,默認為true,多個tomcat時需使用非黏性
8.lockingMode??? 可選項
只有非黏性session才使用,默認值為none
none: 從不對session進行鎖定
all: session將一直被鎖定,知道請求結束
auto: 對于只讀請求,session將不會被鎖定,如果是非只讀請求,則session會被鎖定
uriPattern:<regexp>: 通過正則表達式的方式來對請求uri以及查詢字符串進行匹配,只有匹配上的才會被鎖定。
9.requestUriIgnorePattern?? 可選項
此屬性是那些不能改備份Session的請求的正則表達式。如果像css,javascript,圖片等靜態文件被同一個Tomcat和同一個應用上下文來提供,這些請求也會通過memcached-session-manager。但是這些請求在一個http會話中幾乎沒什么改變,所以他們沒必要觸發Session備份。所以那些靜態文件沒必要觸發Session備份,你就可以使用此屬性定義。此屬性必須符合java regex正則規范。
?? 如:".*\.(png|gif|jpg|css|js)$" ?
10.sessionBackupAsync?? 可選項
指定Session是否應該被異步保存到Memcached中。 如果被設置為true,backupThreadCount設置起作用,如果設置false,通過sessionBackupTimeout設置的過期時間起作用。
11.backupThreadCount??? 可選項
用來異步保存Session的線程數,(如果sessionBackupAsync="true")。默認值為cup的內核數。
12.sessionBackupTimeout??? 可選項
設置備份一個Session所用的時間,如果操作超過時間那么保存失敗。此屬性只在sessionBackupAsync="false"是起作用。默認100毫秒
13.operationTimeout??? 可選項
從1.6.0版開始使用, 默認值為1000
14.sessionAttributeFilter??? 可選項
此屬性是用來控制Session中的那個屬性值保存到Memcached中的正則表達式。鄭則表達式被用來匹配Session中屬性名稱。如sessionAttributeFilter="^(userName|sessionHistory)$" 指定了只有"userName"和"sessionHistory"屬性保存到Memcached中。依賴于選擇的序列化策略。
15.transcoderFactoryClass??? 可選項
此屬性值是創建序列化和反序列化保存到Memcached中的Session的編碼轉換器的工廠類名。這個指定的類必須實現了de.javakaffee.web.msm.TranscoderFactory和提供一個無參的構造方法。例如其他的有效的實現在其他packages/jars中提供如:msm-kryo-serializer,msm-xstrea-serializer和msm-javolution-serializer.
默認為 de.javakaffee.web.msm.JavaSerializationTranscoderFactory
16.copyCollectionsForSerialization??? 可選項
默認值為false。詳細解釋參見官網解釋。
17.customConverter??? 可選項
自己定義特殊的類注冊到kryo自定義轉換器中,實現序列化
18.enableStatistics??? 可選項
用來指定是否進行統計。 默認值為true。
19.enabled?? 可選項
指定Session保存到Memcached中是否可用和是否可以通過JMX進行改變。只用于粘性Session。 默認值為true。
總結
以上是生活随笔為你收集整理的nginx+tomcat7+memcached的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修复病毒破坏的文件关联并恢复程序图标
- 下一篇: CentOS安装五笔输入法