第二步,解决Tomcat集群和Memcached存储会话
这一步又分为两步来完成:一是要解决Tomcat集群,二是要解决Memcached存储会话。
第一步、解决Tomcat集群
在这个案例中我们配置了两台Tomcat服务器,在两台不同的物理服务器上,它们的IP分别为192.168.3.139和192.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"/>
|
注意将以上的配置添加在原配置文件中:
|
<!-- --> |
的下面即可。
另外还需要执行以下四条命令:
|
[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"/>
|
同样,注意将以上的配置添加在原配置文件中:
|
<!-- --> |
的下面即可。
另外还需要执行以下四条命令:
|
[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博客 ” ,链接:https://blog.itpub.net/27043155/viewspace-733714/ ,如需转载,请注明出处,否则将追究法律责任。