网站的集群部署动态部分可以采用tomcat的session复制功能,事实表明,在并发量达到一定数量级的情况下,用session复制功能会引起性能问题,这几天研究了下MSM的一个开源项目,本部署方式也基与此,主要解决:
- tomcat的单点故障问题;
- tomcat集群;
- nginx负责均衡,采用默认IP分发方式;
- 一个简单的web程序测试
测试环境:Linux CentOS版
步骤如下:
- 安装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)$"
-
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
-
/>
-
</Context>
<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)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
测试过程(修改hosts文件,将www.test.com到192.168.1.6):
输入:http://www.test.com/memLogin,如下图:
登录后:
可以发现,目前用的是tomcat1,现在在Linux上关闭tomcat1,通过负载均衡让其使用tomcat2,看session是否能保持,关闭后,在当前页面刷新,如下图:
可以看到,现在已经使用tomcat2了,但session仍然保持着。
以上的部署过程基于nginx+tomcat6!
分享到:
相关推荐
大型网站架构演化 大型网站软件系统的特点 大型网站架构演化发展历程 初始阶段 应用服务和数据服务分离 使用缓存改善网站性能 缓存类型 本地缓存 分布式缓存 缓存产品 redis 业界...
初步认识RabbitMQ及高可用集群部署 详解RabbitMQ消息分发机制及主题消息分发 RabbitMQ消息路由机制分析 RabbitMQ消息确认机制 Redis redis数据结构分析 Redis主从复制原理及无磁盘复制分析 Redis管道模式...
应 " " "提供较大型系统集群应用案例。 " " "支持会话亲和。均衡负载策略支持简单轮转、加权轮转" " "、随机、备份等方式。 " " "必须支持异构Cluster。即当硬件平台或操作系统不是 " " "同一产品时,Web应用服务器...
3、大型网站 访问量(tps每秒传输的事物处理个数、qps每秒查询率) 数据量(存储数据量) 4、读写分离 5、搜索引擎 6、缓存、限流、降级、分库、表拆分(500w~1000w) 7、解决session跨域 cookie 存sessionid,...
3、一次性启动多工人进程支持,可以通过程序api一次性启动和管理“ParkServer/工头/工人”多个进程,并附带良好的日志输出功能,用于代替写批处理脚本方式,方便部署和运行。 4、增加了相应指南和demo。 本软件...
1、元数据访问,添加删除,按块拆分, 高性能并行读写,排他读写(按文件部分内容锁定),随机读写,集群复制等 2、对集群文件的解析支持(包括按行,按分割符,按最后标识读取) 3、对整形数据的高性能读写支持...
“农民工”为一个计算节点,可以部署在多个机器,它由开发者自由实现,计算时,“农民工”到“手工仓库”获取输入资源,再将计算结果放回“手工仓库”返回给“包工头”。“包工头”负责承包一个复杂项目的一部分,...
通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...
Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...