memcached+tomcat共享session

 随着网站访问量的不断增大,一台应用服务器已经无法满足高并发的访问,我们不得不选择将项目集群。我们不得不将项目放到不同的应用服务器(如 :tomcat)中,但是由于每个tomcat生成自身的session,所以当用户第一次访问(如:访问到了tomcat-1)并进行了登陆,但是当他第二次进行访问(如 :访问到了tomcat-2)时由于tomcat-1中已登录的session信息不能在tomcat-2中获取,系统又会要求用户进行登陆。那么只有让两个tomcat的session保持一致才能解决此问题,这里我们采用memcached来共享session,让tomcat的session交由memcached去管理。

1、下载memcached

      memcached官方网址:http://memcached.org    提供了linux版本

      memcached for win32版下载地址:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

百度下载:百度下载

源码地址:https://code.google.com/p/memcached/

2、在windows下安装memcached

    (1)、 下载好后里面只有一个memcached.exe,解压到c:/memcached/memcached.exe

   (2)、将memcached安装成windows服务:

                  打开命令行窗口,进到c:/memcached,执行:memcached.exe  -d install

3、准备好两个干净的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”//将session交由memcached管理

memcachedNodes=”n1:localhost:11211″//11211是memcached的端口号
requestUriIgnorePattern=”.*.(ico|png|gif|jpg|css|js)$”
transcoderFactoryClass=”de.javakaffee.web.msm.JavaSerializationTranscoderFactory”
/>

     (3)、准备一个jsp页面(index.jsp),内容如下:
       sessionId: <%=session.getId()%>

      (4)、在两个tomcat的webapps下各创建一个文件夹test,将index.jsp分别放置到test文件夹中

4、启动tomcat


tomcat-1中的sessionId

 


tomcat-2中的sessionId

 

两个sessionid一样,session共享成功!

注意:不能跨域session共享,跨域session共享的问题请大家多多指教

本文出自 luoshengsha.com,欢迎转载,转载时请注明出处及相应链接。

本文永久链接: http://www.luoshengsha.com/395.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值