注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

nginx负载均衡 tomcat集群 memcache共享session  

2012-11-30 11:50:42|  分类: 系统集成 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了。
你可以自己写tomcat的扩展来保存SESSION到memcached。
这里推荐使用memcached-session-manager这个开源项目
http://code.google.com/p/memcached-session-manager/ ,下面简称msm。


如何安装nginx、memcached、tomcat这些就不多说了。

环境: windows 7 + nginx-1.1.5 + memcached-1.2.6-win32-bin + apache-tomcat-7.0.20-windows-x86 + jdk-6u6-windows-i586-p(JDK 1.6 , memcached-1.2.6-win32-bin 下载地址:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip 

需要用到的 jar 包:

memcached-2.6.jar ( http://spymemcached.googlecode.com/files/memcached-2.6.jar 

javolution-5.4.3.1.jar

memcached-session-manager-1.5.1.jar

memcached-session-manager-tc7-1.5.1.jar

msm-javolution-serializer-1.5.1.jar

msm-kryo-serializer-1.5.1.jar

msm-xstream-serializer-1.5.1.jar

以上 jar 包在 http://code.google.com/p/memcached-session-manager/downloads/list 中都可以找到。

 

安装 Memcached

解压缩 memcached-1.2.6-win32-bin.zip ,打开 cmd ,进入 memcached-1.2.6-win32-bin 目录,运行“memcached.exe –d install ”安装 memcached 的 windows 服务。

 

         安装 niginx

与 <<Windows 下实现 Nginx+Tomcat 集群部署方案 >> 是一样的。

 

安装 Tomcat

网上很多资料都是基于 Tomcat6 的,如果使用 Tomcat7 需要用到 memcached-session-manager-tc7-1.5.1.jar ,把上面说到的 jar 包放在 Tomcat7 的 lib 目录下。

         我在测试的时候,设置了两个节点,也就是有两个 Tomcat ,他们主要的区别在于端口不同 ,因为我是在一台电脑上进行测试的。

1 、 server.xml 修改

1 ) <Server port="8005" shutdown="SHUTDOWN"> 两个 Tomcat 的 port 分别为: 8005 、 8006

2 ) <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 两个 Tomcat 的 port 分别为: 8080 、 8081

3 ) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 两个 Tomcat 的 port 分别为:8009 、 9009

4 ) <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat7-1" > 两个 Tomcat 的 jvmRoute分别为: tomcat7-1 、 tomcat7-2

2 、 context.xml 修改

在 <Context> 标签内加入以下代码:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:localhost:11211"

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

sessionBackupAsync="false"

sessionBackupTimeout="100"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

copyCollectionsForSerialization="false"/>

测试

在两个 Tomcat 的 webapps 目录下创建 test 目录,在 test 目录下,创建 index.jsp 文件,文件内容如下:


Html代码
  1. <%@ page contentType="text/html; charset=GBK" %>   
  2.    
  3. <%@ page import="java.util.*" %>   
  4.    
  5. <html><head><title>Cluster Test</title></head>   
  6.    
  7. <body>   
  8.    
  9. <%   
  10.    
  11.   //HttpSession session = request.getSession(true);   
  12.   System.out.println(session.getId());  
  13.   out.println("<br> SESSION ID:" + session.getId()+"<br>");  
  14. %>  
  15.    
  16. </body>   
  17. </html>  

我们先启动 memcached ,打开 cmd ,进入 memcached-1.2.6-win32-bin 目录,运行“ memcached.exe –p 11211 –d start ”;然后启动 niginx 和两个 Tomcat 。

打开浏览器,输入 http://127.0.0.1/test ,我们会看到页面上显示以下内容:

SESSION ID:D91C4F897566168C82A92AF2A36E154B-n1.tomcat7-2

         “ D91C4F897566168C82A92AF2A36E154B ”为 SessionId ,“ n1 ”为 memcached 的节点名称,“ tomcat7-2 ”为目前所访问的 web 应用服务器的名称。

  评论这张
 
阅读(1821)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016