Tomcat集群解决方案
来源:互联网 发布:xp桌面壁纸软件下载 编辑:程序博客网 时间:2024/06/09 16:31
笔者所在公司由于业务性质(不允许单机故障发生),所有应用都需要集群分布式部署。那么对于Tomcat集群如何保持并同步各Tomcat服务器的Session状态,下面提供四种解决方案:
1、使用tomcat自带的cluster集群方式,多个tomcat间自动实时复制session信息,配置起来很简单。但这个方案的效率、性能比较低,在大并发下表现并不好,不建议。
2、利用nginx的基于访问ip的hash路由策略,保证访问的ip始终被路由到同一个tomcat上,这个配置更简单。但如果应用是某一个局域网大量用户同时登录,这样负载均衡就没什么作用了。
3、用nginx插件实现tomcat集群和session同步,nginx-upstream-jvm-route-0.1.tar.gz,是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能,可通过http://code.google.com/p/nginx-upstream-jvm-route/downloads/list获取。
4、利用memcached把多个tomcat的session集中管理,前端在利用nginx负载均衡和动静态资源分离,在兼顾系统水平扩展的同时又能保证较高的性能。笔者所在公司采用的就是这种方案。
上面第四种解决方案的集群环境是:
1、nginx版本为:nginx-1.6.3
2、tomcat版本为:apache-tomcat-7.0.50
3、memcached版本为:memcached-1.4.3.tar.gz
4、 session复制同步使用jar包memcache-session-manager版本:memcached-session-manager-1.6.3.jar
5、操作系统环境为:centos6.5
具体操作有以下几点要注意:
1、session复制同步需要用到的jar包(需要放到tomcat的lib文件夹下),在笔者的GitHub地址:
https://github.com/meiyang1990/jar-tomcat-nginx-memcached.git
2、修改tomcat的conf目录下的context.xml文件,添加上以下一段内容:
<?xml version='1.0' encoding='utf-8'?><Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" sticky="false" lockingMode="auto" sessionBackupAsync="false" sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> </Context>
好了!
- Tomcat集群解决方案
- Tomcat集群session管理解决方案
- Tomcat集群解决方案(MARK)
- tomcat集群基于redis共享session解决方案
- tomcat集群,几种session同步解决方案的比较
- Tomcat集群Spring+Quartz多次执行解决方案记录
- Tomcat集群
- tomcat集群
- Tomcat集群
- TOMCAT 集群
- tomcat集群
- Tomcat集群
- tomcat集群
- tomcat 集群
- tomcat集群
- tomcat集群
- Tomcat集群
- tomcat集群
- fastjson的SerializerFeature
- API接口管理平台-rap
- 用UIImageView实现几张图片轮转已达到动画效果
- NoSQL非关系型数据库
- Linux Makefile gcc g++
- Tomcat集群解决方案
- MongoDB权威指南-第7章
- 第二章 DOM初识之概念、结构、类型和节点的查找
- 单例模式
- bzoj1974 network 网络扩容 网络流
- Infopath——sum函数
- P2P实现的原理
- 数据库以字段float查询不到所需要的值
- JS调用Java代码(Android)