如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块。
本文当采用tomcat默认集群配置(<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>)时,配置的细节实际上被省略了,对于大多数应用而言,使用默认配置已经足够。
下载tomcat 8.0 到本地, 保存为tomcat1, 复制tomcat1 为tomcat2,
修改tomcat2的端口设置,可以参考下面这个链接修改端口。
http://crunchify.com/how-to-run-multiple-tomcat-instances-on-one-server/
在examples目录下创建一个session.jsp文件,用来测试Cluster中两个Tomcat使用的Session是同一个Session,并且当其中一个Tomcat修改Session中的值时,第二个Tomcat会同样得到更新;代码如下:
<html> <head> <title></title> </head> <body> <% String mydata = request.getParameter("mydata"); if (mydata != null && mydata.length() != 0) { session.setAttribute("mydata", mydata); } out.println("request.getLocalAddr(): " + request.getLocalAddr()); out.println("<br/>"); out.println("request.getLocalPort(): " + request.getLocalPort()); out.println("<br/>"); out.println("Session ID: " + session.getId()); out.println("<br/>"); out.println("mydata: " + session.getAttribute("mydata")); %> <form> <input type=text size=20 name="mydata"> <br> <input type=submit> </form> </body> </html>
现测试一下不添加cluster配置, 是什么情况。
session的值是不一样的。
接着我们添加cluster配置。
修改tomcat1 和tomcat2 conf/server.xml文件,将其中<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>前后的注释打开保存;
<Engine name="Catalina" defaultHost="localhost"> <!--For clustering, please take a look at documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) --> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
修改tomcat1 和tomcat2 的web.xml
修改其中的WEB-INF/web.xml文件,在其中<display-name>Servlet and JSP Examples</display-name>节点后添加<distributable/>表明此应用与集群服务器复制 Session;
<description> Servlet and JSP Examples. </description> <display-name>Servlet and JSP Examples</display-name> <distributable/>
重启tomcat1, tomcat2
可以看到session同步成功!
http://laravel.iteye.com
相关推荐
tomcat单机集群配置[借鉴].pdf
用法:解压后的jar包分别放到集群项目所有tomcat的lib目录下,然后打开tomcat的conf目录下的context.xml,找到context节点,增加如下内容 <Valve className="com.orangefunction.tomcat.redissessions....
springboot框架 一、Spring Boot基础应用 Spring Boot特征 ...4.使部署变得简单,SpringBoot内置了三种Servlet容器,Tomcat,Jetty,undertow.我们只需要一个Java的运行环境就可以跑SpringBoot的项目了
环境描述:centos6/64位,JDK1.8,tomcat8 dubbo-admin安装要点: 1.清空tomcat/webapps/ROOT目录 2.将包解压到tomcat/webapps/ROOT下 3.修改tomcat/webapps/ROOT/WEB-INF/dubbo.properties 文件 dubbo.registry....
21.5.10 配置Tomcat 428 21.5.11 测试 429 21.5.12 Nginx配置 429 21.5.13 绑定hosts测试 430 21.6 前端展示实现 430 21.6.1 基础组件 430 21.6.2 商品介绍 432 21.6.4 前端展示 434 21.6.5 测试 442
├─补充1:拔高课程(Redis3.0持久化、集群、MySQL5.6优化、Tomcat7优化) │ │ 打开必读.txt │ │ │ ├─课前资料 │ │ ├─MySQL5.6优化 │ │ │ MySql5.6性能优化.docx │ │ │ │ │ ├─Redis集群 │ ...
配置 Spring Data Redis 或 使用 Spring Cache 管理缓存 修改所有接口为 RESTFull 风格, 接口成功时只返回数据,错误时通过HTTP状态码和业务状态码处理,摒弃丑陋的包装对象,定义统一的错误处理机制 支持本地测试,...
3. 编辑 %TOMCAT_HOME%\webapps\taokeeper-monitor\WEB-INF\logback.xml 以下配置: ”LOG_HOME” value=”/home/yinshi.nc/taokeeper-monitor/logs” /> ”LOG_LEVEL” value=”INFO” /> ”LOG_LAYOUT_PATTERN” ...
Web化的管理界面,在web界面完成配置、发布、监控、日志、Key-value存储集群管理等所有操作。需要复杂部署的服务器都采用Docker镜像的方式安装,使得部署与上手非常容易。相比使用其他开源组件拼凑起来的解决方案,...
DDMQ 是滴滴出行架构部基于 Apache RocketMQ 构建的消息队列产品。作为分布式消息中间件,DDMQ 为滴滴出行各个业务线提供了低延迟、高并发、高可用、高可靠的消息服务。...Tomcat 7/8/9 Zookeeper 3.4.x
主要技术包括:Hibernate、Spring、SpringMVC、log4j slf4j 整合、myBatis、struts2、Shiro 、redis、流程引擎activity, 爬 ⾍技术nutch,lucene,webService CXF、Tomcat集群和热备 、MySQL读写分离 4. 描述如下:...
8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很简单甚至不算是...
8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很简单甚至不算是...