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