亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

memcached-session-manager配置

系統 1537 0

聲明:本篇文章是根據 memcached-session-manager官方配置方法wiki頁面 翻譯整理,關于memcached-session-manager的介紹,具體參見官網: http://code.google.com/p/memcached-session-manager/ ,也可以參考: http://gong1208.iteye.com/blog/1596120

?

Introduction

如果為了簡單使用,你只需要安裝一個tomcat(6或者7)和memcached,在生產環境中可能會有多臺tomcat服務器以及多臺可用的memcached節點,并安裝在不同的機器上,我們可以使用黏性session( sticky sessions )或者非黏性session( non-sticky sessions ),memcached-session-manager (msm)?對這兩種操作模式都支持。

下面給出一個黏性session模式的設置示例,此實例中安裝了2個tomcat以及2個memcached。

Tomcat-1(t1)的首要選擇是把session存儲在memcached-2 (m2)上(m2是t1的一個普通節點),而m2是運行在另外的一臺機器上。只有當m2不可用(宕機或無法訪問)時,t1才會把session存儲到memcached-1(m1,m1是t1的故障轉移節點)上。使用這種配置,即使機器1宕機了session也不會丟失。具體如下圖所示:

memcached-session-manager with sticky sessions

我們如何設置才能實現呢?

?

Decide which serialization strategy to use

從1.1版開始,MSM就提供了多種可選的session序列化策略,默認的策略是使用java進行序列化,這種實現已經集成在memcached-session-manager.jar包中了,其它的策略則可以通過不同的jar包來提供實現。在下面的章節中,我們可以了解到每種策略所需要的jar包具體有哪些。

?

Configure tomcat

關于tomcat的配置主要包括兩個方面,首先需要下載所需要的包,放到tomcat安裝目錄下的lib目錄下(嚴格來說應該是$CATALINA_HOME/lib/)以及我們應用的WEB-INF/lib/?目錄下,同時還需要修改$CATALINA_HOME/conf/context.xml文件,并在<Context>元素中添加memcached session管理的配置信息。

?

Add memcached-session-manager jars to tomcat

不管你選擇哪種序列化策略,你都需要 ? memcached-session-manager-${version}.jar ?,如果你使用的是tomcat6,則還需要下載? memcached-session-manager-tc6-${version}.jar ?,如果使用的是tomcat7則下載? memcached-session-manager-tc7-${version}.jar ?。同時還需要下載? spymemcached-2.7.3.jar .下載這完這些jar包后把jar包放到? $CATALINA_HOME/lib/目錄

?

Add custom serializers to your webapp (optional)

如果只是使用java序列化的話,那么需要的jar包就是以上所列出的那些了,但是如果想使用自定義的序列化策略(通常性能會更佳),我們還需要下載相應的jar包并放到我們webapp下的 WEB-INF/lib/目錄中。

如果你的應用使用了maven來進行jar包管理,那么你只需要在pom.xml中加入相應的序列化策略依賴定義就可以了,具體的maven依賴定義如下(任選一種就oK了):

kryo-serializer:

      <dependency>
    <groupId>de.javakaffee.msm</groupId>
    <artifactId>msm-kryo-serializer</artifactId>
    <version>1.6.0</version>
    <scope>runtime</scope>
</dependency>
    

javolution:

      <dependency>
    <groupId>de.javakaffee.msm</groupId>
    <artifactId>msm-javolution-serializer</artifactId>
    <version>1.6.0</version>
    <scope>runtime</scope>
</dependency>
    

xstream:

      <dependency>
    <groupId>de.javakaffee.msm</groupId>
    <artifactId>msm-xstream-serializer</artifactId>
    <version>1.6.0</version>
    <scope>runtime</scope>
</dependency>
    

flexjson:

      <dependency>
    <groupId>de.javakaffee.msm</groupId>
    <artifactId>msm-flexjson-serializer</artifactId>
    <version>1.6.0</version>
    <scope>runtime</scope>
</dependency>
    

?

如果我們不是使用maven倉庫來對依賴進行管理的話 ,我們需要針對每種策略下載單獨需要的jar包,具體如下:

?

Configure memcached-session-manager as? <Context> ?Manager

處理完jar包之后,我們還需要修改 ? $CATALINA_HOME/conf/context.xml文件中Context節點下的內容,添加 memcached-session-manager配置。

下面將會講解關于tomcat配置的具體的示例,主要包括使用memcached來管理黏性session和非黏性session以及使用membase來管理非黏性session。示例基于的前提是假設我們有2個memcached實例,一個運行在host1主機,另一個運行在host2主機,示例使用的序列化方式為 kryo。

下面我們給出tomcat1的配置,假設tomcat1和memcached節點n1都是運行在host1主機上,其中屬性 failoverNodes="n1"的作用是告訴msm最好是把session保存在 memcached "n2"節點上,只有在n2節點不可用的情況下才把session保存在n1節點。這樣即使host1主機宕機,仍然可以通過host2上的tomcat2訪問存放在 memcached "n2"? 節點中的session。

tomcat1 configuration:

      <Context>
  ...
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
    failoverNodes="n1"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
</Context>
    

以上就是tomcat1的配置信息,對于tomcat2,我們只需要修改一下failoverNodes屬性的值為"n2" ,這樣tomcat2就會優先把session存放到memcached "n1"節點,其余配置信息都一樣。

?

下面演示一個非黏性session管理的配置示例,對于非黏性的session管理,我們不需要配置failoverNodes屬性,因為所有sessions在tomcat集群中是循環可見的,并不會綁定到某一個單獨的tomcat,對于非黏性session管理,集群中的所有tomcat都是用同一個配置,具體信息如下:

      <Context>
  ...
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
    sticky="false"
    sessionBackupAsync="false"
    lockingMode="uriPattern:/path1|/path2"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
</Context>
    

如果是使用membase來對session進行管理,那么則某一個節點的配置如下:

      <Context>
  ...
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="http://host1.yourdomain.com:8091/pools"
    username="bucket1"
    password="topsecret"
    memcachedProtocol="binary"
    sticky="false"
    sessionBackupAsync="false"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
</Context>
    

在context.xml中配置完msm之后,?我們就可以啟動我們的應用程序了,這樣所有的session將會根據系統配置存儲到指定的memcached節點或者membase中。

?

Overview over memcached-session-manager configuration attributes

className ?(required)

類名: de.javakaffee.web.msm.MemcachedBackupSessionManager

?

memcachedNodes ?(required)

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協議,傳輸數據通過二進制流方式。

?

failoverNodes ?(optional, must not be used for non-sticky sessions)

故障轉移節點:可選項,對非黏性session不可用,屬性必須包含memcached節點集群的所有ids。節點id之間用空格或者逗號分隔。

?

username ?(since 1.6.0, optional)

從1.6.0版開始使用,并且是可選的。用來進行membase bucket或者SASL驗證。

?

password ?(since 1.6.0, optional)

從1.6.0版開始使用,并且是可選的。用來進行membase bucket或者SASL驗證,密碼可以為空。

?

memcachedProtocol ?(since 1.3, optional, default? text )

定義memcached協議,默認使用text文本

?

sticky ?(since 1.4.0, optional, default? true )

定義session方式為黏性或非黏性,默認為true

?

lockingMode ?(since 1.4.0, optional, for non-sticky sessions only, default? none )

只有非黏性session才使用,默認值為none

  • none : 從不對session進行鎖定
  • all : session將一直被鎖定,直到請求結束
  • auto : 對于只讀請求,session將不會被鎖定,如果是非只讀請求,則session會被鎖定
  • uriPattern:<regexp> : 通過正則表達式的方式來對請求uri以及查詢字符串進行匹配,只有匹配上的才會被鎖定。

requestUriIgnorePattern ?(optional)

?

sessionBackupAsync ?(optional, default? true )

?

backupThreadCount ?(since 1.3, optional, default? number-of-cpu-cores )

?

sessionBackupTimeout ?(optional, default? 100 )

?

operationTimeout ?(since 1.6.0, optional, default? 1000 )

?

sessionAttributeFilter ?(since 1.5.0, optional)

?

transcoderFactoryClass ?(since 1.1, optional, default? de.javakaffee.web.msm.JavaSerializationTranscoderFactory )

序列化接口實現:

  • Java serialization:? de.javakaffee.web.msm.JavaSerializationTranscoderFactory
  • Kryo ?based serialization:? de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory
  • Javolution based serialization:? de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory
  • XStream based serialization:? de.javakaffee.web.msm.serializer.xstream.XStreamTranscoderFactory

?

copyCollectionsForSerialization ?(since 1.1, optional, default? false )

?

customConverter ?(since 1.2, optional)

?

enableStatistics ?(since 1.2, optional, default? true )

?

enabled ?(since 1.4.0, optional, default? true )

memcached-session-manager配置


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 全部毛片| 免费性生活视频 | 久久午夜综合久久 | 自拍亚洲午夜伦li片影院 | 久久精品国产福利国产秒 | 四虎影视国产精品永久在线 | 羞羞视频网 | 伊人网综合在线视频 | 国产一区二区精品久久小说 | 亚洲专区欧美专区 | 中文字幕日本一区波多野不卡 | 成人动漫久久 | 久久99精品视免费看 | 老子午夜伦不卡影院 | 亚洲日本va中文字幕区 | 婷婷视频在线 | 亚洲国产成人久久综合碰 | 中文字幕日韩精品一区口 | 国产成人福利夜色影视 | 另类综合网 | 日韩欧美一区二区三区四区 | 五月婷网| 福利视频中文在线观看 | 国产精品美女流白浆视频 | 国产精品综合一区二区三区 | 久久青草网站 | 日韩亚洲欧美一区二区三区 | 精品久久久在线观看 | 国产三级观看久久 | 精品国产中文字幕 | 99热这里只有精品国产动漫 | 99热成人精品热久久66 | 欧美一级免费大片 | 成人网视频 | 日本一区二区三区在线观看 | 久久精品国产99国产 | 亚洲国产综合人成综合网站00 | 婷婷色在线播放 | 看黄网站在线观看 | 青草草在线观看免费视频 | 337p日本大胆欧美人术艺术6 |