• Tomcat基于MSM+Memcached实现Session共享


    简述

    上一篇文章,分别演示了session sticky 和 session cluster来实现会话保持的问题,但是它们缺点都不少,实际中用的很少,所以这篇文章我们还是通过Tomcat来演示一下实际中用得比较多的session server。

    实验拓扑如下,为了减少实验中机器数量,就把Memcached和Tomcat放在同一台机器上了,实际中应该是要分开的。

    实验步骤

    Memcached官方文档

    在node3,4上面安装配置Tomcat,提供测试的网页应用程序,node2上安装配置nginx。到这里的配置和上篇文章讲过,具体配置可以参考上篇文章。

    在node3和node4上安装Memcached,yum install memcached libmemcached -y`
    然后下载如下jar文件至各tomcat节点的tomcat安装目录下的lib目录中,其中的${version}要换成需要的版本号,tc${6,7,8}要换成与tomcat版本相同的版本号。

    	memcached-session-manager-${version}.jar
    	memcached-session-manager-tc${6,7,8}-${version}.jar
    	spymemcached-${version}.jar
    	msm-javolution-serializer-${version}.jar
    	javolution-${version}.jar
    

    分别在两个tomcat上的某host上定义一个用于测试的context容器,并在其中创建一个会话管理器,如下所示:

    <Context path="/test" docBase="test" reloadable="true">
        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"    #使用的会话管理器
          memcachedNodes="n3:172.16.47.103:11211,n4:172.16.47.104:11211"    #成员
          failoverNodes="n3"
          requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"   #忽略的资源
          transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"  #序列化工具
        />
    </Context>
    

    可以看到,Session ID一直没有变化,基于Session server的会话绑定实现了。

    注:在配置好Tomcat,验证的时候遇到一个坑,其实是自己疏忽了:时间没有同步,结果验证的时候,session id一直在变,后来把时间同步后,结果正常。

    我的个人站点iLurker.cn

    个人站点:www.ilurker.cn
  • 相关阅读:
    vs2015 停 在 update kb2999226 一直不动
    修复vs2012出现 “无法找到包源”的错误
    forward 和redirect的区别
    软件测试分类
    centos7安装HTTPS协议
    php抓取网页特定div区块及图片,从简单入手
    nginx报 File not found 错误
    关于端口
    调试技巧:让断点停在for循环中的 i 为某个值得时候
    an AC a day keeps the WA away ~
  • 原文地址:https://www.cnblogs.com/ilurker/p/6450775.html
Copyright © 2020-2023  润新知