Nginx和Tomcat的session處理分為兩步 2

nginx_web發表於2012-06-25

 

 

 

第二步,解決Tomcat叢集和Memcached儲存會話

 

這一步又分為兩步來完成:一是要解決Tomcat叢集,二是要解決Memcached儲存會話。

 

第一步、解決Tomcat叢集

 

    在這個案例中我們配置了兩臺Tomcat伺服器,在兩臺不同的物理伺服器上,它們的IP分別為192.168.3.139192.168.3.140

 

IP 192.168.3.139 的機器上新增如下配置:

 

    將以下內容新增在$CATALINA_HOME/server.xml中。

 

 

                 channelSendOptions="8">

 

         

                   expireSessionsOnShutdown="false"

                   notifyListenersOnReplication="true"/>

 

         

           

                        address="224.0.0.4"

                        port="45564"

                        frequency="500"

                        dropTime="3000"/>

           

                      address="192.168.3.139"

                      port="4000"

                      autoBind="100"

                      selectorTimeout="5000"

                      maxThreads="6"/>

 

           

             

           

           

           

         

 

         

                 filter=""/>

         

 

         

                    tempDir="/tmp/war-temp/"

                    deployDir="/tmp/war-deploy/"

                    watchDir="/tmp/war-listen/"

                    watchEnabled="false"/>

 

         

         

       

   

 注意將以上的配置新增在原配置檔案中:

 

      <!--

     

      --&gt

   

 的下面即可。

 

    另外還需要執行以下四條命令:

 

[root@mail tomcat]#mkdir  /tmp/war-temp/

[root@mail tomcat]#mkdir  /tmp/war-deploy/

[root@mail tomcat]#mkdir  /tmp/war-listen/

   

這三條命令沒什麼可解釋的,這是上面配置中的需要。

 

[root@mail tomcat]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

   

這條命令的功能在於新增多播路由,對於是不是eth0裝置要根據具體的情況設定。

 

IP 192.168.3.140 的機器上新增如下配置:

 

    將以下內容新增在$CATALINA_HOME/server.xml中。

 

 

                 channelSendOptions="8">

 

         

                   expireSessionsOnShutdown="false"

                   notifyListenersOnReplication="true"/>

 

         

           

                        address="224.0.0.4"

                        port="45564"

                        frequency="500"

                        dropTime="3000"/>

           

                      address="192.168.3.140"

                      port="4000"

                      autoBind="100"

                      selectorTimeout="5000"

                      maxThreads="6"/>

 

           

             

           

           

           

         

 

         

                 filter=""/>

         

 

         

                    tempDir="/tmp/war-temp/"

                    deployDir="/tmp/war-deploy/"

                    watchDir="/tmp/war-listen/"

                    watchEnabled="false"/>

 

         

         

       

   

同樣,注意將以上的配置新增在原配置檔案中:

 

      <!--

     

      --&gt

   

的下面即可。

 

    另外還需要執行以下四條命令:

 

[root@mail tomcat]#mkdir  /tmp/war-temp/

[root@mail tomcat]#mkdir /tmp/war-deploy/

[root@mail tomcat]#mkdir /tmp/war-listen/

   

這三條命令沒什麼可解釋的,這是上面配置中的需要。

 

[root@mail tomcat]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

   

這條命令的功能在於新增多播路由,對於是不是eth0裝置要根據具體的情況設定。

 

第二步、解決Memcached儲存會話

 

    由於我們使用了Memcached,因此需要下載它的客戶端java包,如果你能夠自己寫,那麼也可以自己去寫,不過這種活我們做運維的多數是幹不了,幹不了就使用開源的吧,google的開源替我們做了,需要我們做的就是下載了。

 

下載下面的jar包,並且將其放置在$CATALINA_HOME/lib目錄下,在兩臺裝有Tomcat的機器上做同樣的操作,就是說在兩個Tomcat伺服器的$CATALINA_HOME/lib目錄下都新增以下jar包。

 

[root@mail lib]#wget http://memcached-session-manager.googlecode.com/ \

> files/memcached-session-manager-tc7-1.4.1.jar

[root@mail lib]wget  http://memcached-session-manager.googlecode.com/ \

> files/msm-javolution-serializer-jodatime-1.3.0.jar

[root@mail lib] wget http://memcached-session-manager.googlecode.com/ \

> files/msm-javolution-serializer-cglib-1.3.0.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/minlog-1.2.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/msm-kryo-serializer-1.4.0.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/kryo-1.03.jar

[root@mail lib]wget http://memcached-session-manager.googlecode.com/ \

> files/reflectasm-0.9.jar

[root@mail lib]wget http://cloud.github.com/downloads/magro/ \

> kryo-serializers/kryo-serializers-0.8.jar

[root@mail lib]wget http://mirrors.ibiblio.org/pub/mirrors/ \

> maven2/asm/asm/3.2/asm-3.2.jar

[root@mail lib]wget http://spymemcached.googlecode.com/ \

> files/memcached-2.5.jar

 

   

    然後再在$CATALINA_HOME/context.xml新增配置內容,兩臺Tomcat$CATALINA_HOME/context.xml檔案中都新增。

 

192.168.3.139的機器上新增:

 

    memcachedNodes="n1:192.168.3.139:11211 n2:192.168.3.140:11211"

     failoverNodes="n1"

    requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

 />

   

將以上的內容放置在原檔案元素之內。

 

192.168.3.140的機器上新增

 

    memcachedNodes="n1:192.168.3.139:11211 n2:192.168.3.140:11211"

     failoverNodes="n2"

    requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

 />

   

同樣新增在原檔案元素之內。

 

    好了,現在所有的配置都完成了。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-733714/,如需轉載,請註明出處,否則將追究法律責任。

相關文章