tomcat memcached session 共享实现

好记忆不如按烂笔头 ... ...

前言

书接上回 :http://blog.csdn.net/supingemail/article/details/48010141

现在来讲讲具体该如何去实现 :tomcat + memcached + session 共享实现


下载memcached

      memcached官方网址:http://memcached.org    提供了linux版本
      memcached for win32版下载地址:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip
      memcached for win64版下载地址:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available
源码地址:https://code.google.com/p/memcached/

在windows下安装memcached

   (1)、下载好后里面只有一个memcached.exe,解压到c:/memcached/memcached.exe
   (2)、将memcached安装成windows服务:
     打开命令行窗口,进到c:/memcached,执行:memcached.exe  -d install
   (3)、启动memcached : memcached.exe  -d start
   (4)、检测 memcached :cmd --> telnet 127.0.0.1 11211
    

准备好两个干净的tomcat

      (1)、修改相应的端口号:
        一个tomcat保持不变,另外一个tomcat将conf/server.xml中的端口号修改如下:
        <Server port=”8005″ shutdown=”SHUTDOWN”>  将8005端口号改成其他的端口号,不能与另外一个tomcat的相同
        <Connector connectionTimeout=”20000″ port=”8080″ protocol=”HTTP/1.1″ redirectPort=”8443″/> 将8080端口号改成其他的端口号
        <Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″/>将8009端口号改成其他的端口号

      (2)、在两个tomcat,conf/context.xml配置文件中添加如下信息:
        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
            memcachedNodes="n1:localhost:11211 n1:localhost:11311"   
            lockingMode="auto"  //可以去掉
            sticky="false"   //可以去掉
            requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"    
            sessionBackupAsync= "false"    //可以去掉
            sessionBackupTimeout= "100"    
            copyCollectionsForSerialization="true"   //可以去掉
            transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"    
        />
       

测试

编写一个简单的Servlet项目来测试,看看是否实现了session共享.

资源:http://download.csdn.net/detail/supingemail/9057325

中的资料中有全套的配置以及测试,可以供学习之用 ...

在tomcat1 8080 端口中访问 http://localhost:8080/Demo1 会自动进入到登录中去,然后将登录名和密码保存在了session中;

在tomcat2 8090 端口中访问 http://localhost:8090/Demo1/seccess1.jsp ,没有经过登录,但是会打印出在8080端口登录时候的用户名和密码。

由此可见,session在8080 和 8090 端口的服务上实现了共享。


这种共享只能适合特殊的应用,有些应用估计很难。要保证memcached正确安装并运行,而且还要是同一个项目,扯的很了。


改进

利用memcached 的client的去实现不同服务,不同程序之间的信息共享。

实现方式就是下载

commons-pool-1.6.jar

java_memcached-release_2.6.6.jar

log4j-1.2.17.jar

slf4j-api-1.7.2.jar

slf4j-log4j12-1.7.2.jar

这五个jar ,放到要共享数据的两个不相关的项目中去,然后在项目A中的memcached 的client 用来存数据,项目B中的memcached 的client 用来取数据,

以上的配置不变,tomcat的设置也不变,可以通过验证得到结果证实没有问题.








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值