大型网站的集群部署(非session复制方式)
网站的集群部署动态部分可以采用tomcat的session复制功能,事实表明,在并发量达到一定数量级的情况下,用session复制功能会引起性能问题,这几天研究了下MSM的一个开源项目,本部署方式也基与此,主要解决:
?
- tomcat的单点故障问题;tomcat集群;nginx负责均衡,采用默认IP分发方式;一个简单的web程序测试
步骤如下:
- 安装nginx;在Linux的/usr/local下放置两个tomcat6,并修改相应的端口;在Linux上安装MemCached最新版,启动memcached;一个最简单的登录程序部署到tomcat6上,模拟登录;修改Tomcat的server.xml,如下(其中memLogin为工程名):


- <Context path="/memLogin" docBase="memLogin" reloadable="true" source="org.eclipse.jst.jee.server:memLogin"> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.1.6:11211" sticky="false" lockingMode="auto" requestUriIgnorePattern=".*\.(swf|ico|png|gif|jpg|css|js)$" transcoderFactorysrc="/img/2012/06/25/0433023816.jpg">
?登录后:

?可以发现,目前用的是tomcat1,现在在Linux上关闭tomcat1,通过负载均衡让其使用tomcat2,看session是否能保持,关闭后,在当前页面刷新,如下图:

?可以看到,现在已经使用tomcat2了,但session仍然保持着。
以上的部署过程基于nginx+tomcat6!