memcached tomcat 共享session

来源:互联网 发布:c语言大括号的用法 编辑:程序博客网 时间:2024/05/29 10:07
要求两个tomcat共用一个session,可以引用外部缓存(memcached),将session统一放在memcached里面,这样的话,两个tomcat就共用一个session,问题解决了。
   下面是我做的一些实验:
1、先做好准备工作
     将要用的的工具找到:memcached.exe、tomcat6
     用到的包:memcached-session-manager-1.5.1.jar、memcached-session-manager-tc6-1.5.1.jar、msm-javolution-serializer-1.5.1.jar、javolution-5.5.1.jar、memcached-2.5.jar(全部在附件中,tomcat6网上应该很好找,自己下)。
2、安装memcached
   a、memcached.exe放在一个路径下(例如:D:\memcached)
   b、cmd进入到此路径下,执行memcached.exe -d install,即安装memcached,完成后再执行memcached.exe -d start,即启动服务,以后memcached将会作为系统的一个服务自动启动。现在去系统服务下看,如果有memcached且已启动,说明安装成功。(memcached的默认端口是11211)
3、安装部署tomcat
   a、下载免安装版tomcat但是要注意设置jdk环境变量即jdk安装路径(JAVA_HOME) 
   b、复制两份tomcat配置两个tomcat的端口,其中一个不动修改另外一个:
      <Server port="8006" shutdown="SHUTDOWN">:原来是8005注意端口改成四位数
       <Connector executor="tomcatThreadPool"
                     port="8087" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />     :原来是8080
       <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />:原来是8009
启动两个服务器,能一起跑起来,进行下一步。
4、将上面准备的包全部放在两个tomcat的lib下并配置。
再在context.xml中加上配置:
    
   <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:192.168.1.101:11211"sticky="false"sessionBackupAsync="false"lockingMode="auto"requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>



   n1:localhost:11211:memcached服务的接口,11211为memcached的默认端口,现在装在本地的所以为localhost:11211。
在同时运行下tomcat,成功启动,说明配置没错,现在就进行测试了:
5、测试
   附件中的test即为测试项目。分别部署在两个tomcat下,启动,在同一个浏览器访问两个不同的项目,根据页面显示的sessionID,发现是一样的。

参考:http://blog.csdn.net/a__java___a/article/details/8738932
  • test.rar (1.7 MB)
  • 下载次数: 2
  • memcached-32.zip (292.6 KB)
  • 下载次数: 1
  • memcached64.zip (377.3 KB)
  • 下载次数: 2
  • tomcat6_7_8集群session共享所需jar包.zip (3.7 MB)
  • 下载次数: 0
0 0