如何能在集群中的多个节点之间保持数据的一致性,会话(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单机集群配置是一个常见的优化策略,尤其适用于处理高并发的Web应用。这个配置的主要目的是通过Apache HTTP Server(通常称为Apache)作为前端负载均衡器,将用户请求分发到多个在同一台服务器上的Tomcat实例...
通过上述步骤,你可以在Windows 7环境下成功构建一个Apache 2.4 + Tomcat 7的单机垂直集群。这种配置对于测试、开发或小型生产环境都是一个实用的解决方案。然而,对于更大规模的部署,可能需要考虑更复杂的集群架构...
### Tomcat集群安装配置_session知识点概述 #### 一、项目背景及环境介绍 根据文档提供的信息,本项目是由西安辉盛科技发展有限责任公司发起的,旨在实现Tomcat集群的搭建,以便于支持高并发访问场景下的应用服务...
8. **负载均衡和集群部署**: 当单台服务器无法满足需求时,可以考虑使用负载均衡器分发请求到多台Tomcat实例,形成集群,进一步提升系统处理能力。 9. **监控与调优工具**: 使用JConsole、VisualVM等工具实时监控...
4. **Tomcat集群Session共享**:集群环境下,Tomcat需要配置`Context`元素中的`Manager`部分,指定使用`org.apache.catalina.session.PersistentManager`,并添加`Store`为`org.apache.catalina.session.FileStore`...
Spring Boot的核心特性包括自动配置、内嵌式Web服务器(如Tomcat或Jetty)、健康检查端点以及Actuator监控工具,这些都极大地提高了开发效率。 接下来,我们讨论Redis。Redis是一个开源的、基于键值对的数据存储...
同时,确保`<solrcloud>`标签被注释掉,因为在这里我们不使用SolrCloud集群模式,而是单机部署。 4. **启动Tomcat**:打开命令行,导航到Tomcat的bin目录,运行`startup.sh`(Unix/Linux)或`startup.bat`(Windows...
总之,SolrCloud高可用集群的搭建涉及多个步骤,包括环境准备、组件安装、配置调整以及集群管理。正确地完成这些步骤,可以构建一个强大且可靠的分布式搜索引擎,满足大规模数据处理和查询的需求。
集群模式的引入旨在解决单机 Redis 的性能瓶颈和数据安全性问题。Redis 集群通过数据分片(Sharding)将数据分散在多个节点上,实现了数据的水平扩展。每个节点负责一部分数据,当数据量增大时,可以通过增加节点来...
总的来说,"Glassfish单机集群jk_little"的配置涉及到以下几个步骤: 1. 配置Apache HTTP服务器,加载mod_jk模块。 2. 编写workers.properties文件,定义到Glassfish实例的连接。 3. 修改httpd.conf,将请求路由到...
在本项目中,"springboot-dubbo整合(单机版和集群版都测试通过)" 是一个核心主题,意味着开发者成功地将Spring Boot框架与Dubbo服务治理框架进行了集成,并且在两种模式下——单机版和集群版——进行了充分的测试,...
整个过程分为几个阶段:准备软件环境、部署单机版Tomcat 7 + Solr 5.2.1、配置多Tomcat实例以支持Solr集群以及最后配置ZooKeeper集群来确保Solr集群的稳定性和高可用性。 **软件需求:** - **Tomcat 7:** 版本...
在Apache + Tomcat集群环境下,通常需要配置自定义参数以确保集群内的各个节点能够正确地识别彼此。 - **Tomcat**:为了在Tomcat中读取自定义参数,可以在启动参数中添加`-Dd.runtime.server=http://ip:port`。 - *...
修改`tomcat7_ser1\conf\server.xml`,配置Tomcat指向`solr`服务路径。 7. 将`solr-5.2.1\dist`和`solr-5.2.1\server\lib\ext`下的jar包复制到`solr_home_1\server\solr\WEB-INF\lib`。 8. 至此,单机版配置完成...
#### 二、Tomcat集群配置 除了单机优化之外,在高可用性和负载均衡方面,Tomcat还提供了集群解决方案。 1. **集群架构设计**: - **节点间通信**:通过配置Session复制机制实现节点间Session共享。 - **负载均衡...
请注意,这里的步骤适用于单机环境,如果你需要搭建集群或分布式环境,还需要进行额外的配置,例如Zookeeper集群配置、Dubbo服务注册与发现的集群配置等。对于Zookeeper,你需要在多个节点上部署并同步数据;对于...
7. 修改`tomcat7_ser1/conf/server.xml`,配置Tomcat指向Solr服务的路径。 8. 将`solr-5.2.1/dist`和`solr-5.2.1/server/lib/ext`目录下的`.jar`文件复制到`solr_home_1\server\solr\WEB-INF\lib`。 9. 单机版本...