tomcat集群多节点实现session共享
来源:互联网 发布:守望 网络初始化错误 编辑:程序博客网 时间:2024/06/05 17:59
对于高访问量、高并发量的网站或web应用来说,目前最常见的解决方案应该就是利用负载均衡进行server集群,集群之后比如我们有N个节点的Tomcat,用户在访问我们的网站时有可能第一次请求分发到tomcat1下,而第二次请求又分发到了tomcat2下,web分发到不同的服务器节点,这时session不一致,所以我们需要解决一下多个tomcat之间session共享的问题。
环境由tomcat7进行配置,准备一个Java的test.war进行session贡献测试,只是一个页面展示包已上传至http://download.csdn.net/detail/xiaoyi23000/9859455
1、在java程序中将web.xml文件中增加<distributable/>标签,如下所示:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>test</display-name> <distributable/> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
2、每个tomcat下conf文件夹下的context.xml文件,将<context>改为<Context distributable="true">
<Context distributable="true">
3、每个tomcat下conf文件夹下的server.xml文件的<Engine name="Catalina" defaultHost="localhost"> 行下添加如下内容:
<Engine name="Catalina" defaultHost="localhost"> <!--tomcat的session配置--><Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"> <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true" mapSendOptions="6"/> <Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/> <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto" port="4000" selectorTimeout="100" maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> </Sender> <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/> </Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>
4、分别启动每个tomcat通过浏览器进行测试即可。
参考如下博客和论坛:
http://bbs.csdn.net/topics/310082939
http://blog.csdn.net/wlwlwlwl015/article/details/48160433
阅读全文
0 0
- tomcat集群多节点实现session共享
- [Session共享]Tomcat集群实现Session共享
- Tomcat集群实现Session共享
- Memcache 实现tomcat集群session共享
- tomcat集群添加msm实现session共享
- 基于Nginx+Tomcat集群实现Session共享
- memcached实现集群tomcat的session共享
- memcached实现tomcat集群的session共享
- Memcached_Session_Manager(msm)实现tomcat集群session共享
- tomcat集群中实现Session共享
- 使用Memcached实现Tomcat集群Session共享
- redis实现tomcat集群session共享
- redis集群 实现 tomcat session 共享
- tomcat集群session共享
- tomcat集群session共享
- tomcat集群session共享
- tomcat集群session共享
- tomcat集群 session共享
- struts2容器和spring容器
- linux进程池
- 设计模式 抽象工厂 Abstract Factory
- 欧几里得算法
- 马尔科夫蒙特卡罗
- tomcat集群多节点实现session共享
- 利用位操作对英文字母除重
- Android四大组件--Activity详解(一)
- 转:CentOS 7 部署nginx
- 从自建服务器到选择阿里云
- 漂亮回答面试官struts2的原理
- 实现下一秒日期计算(简单的时钟)。
- thinkphp自带的Page类 + Ajax实现无刷新分页 有视频教程和源文件
- 数据库基础知识复习