Tomcat基于Memcached会话共享

安装两台memcache,基于tomcat做会话同步;(只对动态内容缓存,用于追踪用户会话)

Tomcat基于Memcached会话共享

两台安装完tomcat,再yum安装memcached即可;下面这个memcached项目就是为了tomcat增加一个新的会话管理器:放在tomcat的lib下即可;注意memcached要和你的tomcat版本一致;

memcached-session-manager项目地址:https://github.com/magro/memcached-session-manager

    memcached配置文件:/etc/sysconfig/memcached  建议修改缓存空间大小CACHESIZE,M为单位

教室环境下下载安装包,lftp 172.18.0.1:/pub/Sources/7.x86_64/msm> mget * 其他环境参考上述GitHub网站下载
 现在两台tomcat版本都为7,所以删除掉不需要的memcached依赖包:rm -rf memcached-session-manager-tc8-1.8.3.jar
然后将几类包放置到tomcat对应的lib相关目录下:mv *.jar /usr/share/tomcat/lib
随后修改tomcat配置文件,添加在Host上下文中:

分别在两个tomcat上的某host上定义一个用于测试的context容器,并在其中创建一个会话管理器,如下所示(修改对应参数,如docBase路径,n1和n2地址):

<Context path=”/test” docBase=”/usr/share/tomcat/webapps/test” reloadable=”true”>
              <Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”
                memcachedNodes=”n1:172.16.100.9:11211,n2:172.16.100.10:11211″
                failoverNodes=”n1″
                requestUriIgnorePattern=”.*\.(ico|png|gif|jpg|css|js)$”
                transcoderFactoryClass=”de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory”
              />
              </Context>

分别为两个context提供测试页面:

tomcatA:
 mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
 vim /usr/share/tomcat/webapps/test/index.jsp   

上述为tomcat1,tomcat2节点和memcached2与上述安装配置基本一致,就/usr/share/tomcat/webapps/test/index.jsp页面信息有些改变:

最后在172.16.100.6的nginx上配置反向代理的负载均衡内容即可,测试访问:

Tomcat基于Memcached会话共享

Tomcat基于Memcached会话共享

注意会话内容是一致;

Memcached 的详细介绍:请点这里
Memcached 的下载地址:请点这里

相关推荐