本文的设置的总体的框架如下图

利用memcached缓存保持session一致性_tomcat

第一步:安装tengine并设置反向代理,导向node3和node4的8080端口。

利用memcached缓存保持session一致性_服务器_02

第二步:安装memcached,可以安装在另外一个服务器上,这里安装在其中一个Tomcat服务器上

安装:  yum -y install memcached

启动:  service memcached start

第三步:将必要的jar包拷贝到Tomcat的lib目录中

利用memcached缓存保持session一致性_tomcat_03

第四步:在node3_tomcat的配置中添加内容使其与memcached关联

<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"

         memcachedNodes="n1:192.168.204.130:11211"

   sticky="false"

   lockingMode="auto"

   sessionBackupAsync="false"

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

   sessionBackupTimeout="1000"transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

第五步: 修改相关配置,便于后续查看session是哪个服务器创建的

在node3_tomcat的server.xml中配置jvmRoute

<Engine name="Catalina" defaultHost="localhost" jvmRoute="client3">

在node4_tomcat的server.xml中配置jvmRoute

<Engine name="Catalina" defaultHost="localhost" jvmRoute="client4">

第六步:修改Tomcat的index.jsp内容

利用memcached缓存保持session一致性_tomcat_04

第七步:启动

启动nginx: service nginx start

启动memcached:service memcached start

启动两个Tomcat: /opt/apache-tomcat-7.0.61/bin/startup.sh

第八步:测试

打开浏览器,输入192.168.204.128,显示如下:

利用memcached缓存保持session一致性_tomcat_05

刷新,可以看到如下图:

利用memcached缓存保持session一致性_memcached_06

由此可知,红框中的session以及产生session的tomcat并没有改变,改变的只是服务器,这就说明用户多次访问会显示相同的session即保持了session的一致性。

此时清除缓存或重新打开另外的浏览器访问,会产生不同的session,如下图

利用memcached缓存保持session一致性_tomcat_07