环境准备
Tomcat服务器集群中需要进行环境准备:
- Apache:Apache是http服务器,利用其对Tomcat进行负载均衡,这里使用的版本是Apache HTTP Server2.0.64;
- Tmocat:Tmocat7.0.6;
- JK:JK是Tmocat提供给http服务器的插件,这里使用的版本是tmocat-connectors-1.2.37-windows-i386-httpd-2.0.x;
- 系统:win7。
软件安装
Apache
下载完成之后,直接安装apache,安装完成之后,在浏览器中输入http://localhost/,能够看到下图则说明安装成功:
Tomcat
解压下载好的tomcat缩包,复制三份解压好的tomcat文件夹,分别重命名为tomcat1,tomcat2,tomcat3。
配置过程
Apache配置修改
修改httpd.conf,找到conf目录下的httpd.cof,在文件的最后一行添加:
include "C:\Program Files (x86)\Apache Group\Apache2\conf\mod_jk.conf"
新建mod_jk.conf文件,在conf目录下新建mod_jk.conf文件,内容如下:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkMount /*.jsp controller
解压下载的jk文件,将里面的so文件复制到Apache安装目录的modules目录下,这里下载的jk文件名为mod-jk.so。新建并编辑workers.properties文件。在conf文件夹下新建worker.properties,内容如下:
#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=11009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1
#========tomcat2========
worker.tomcat2.port=12009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
#========tomcat3========
worker.tomcat3.port=13009
worker.tomcat3.host=localhost
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor = 1
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1
如果需要配置远程的tomcat服务器的话,只需要将worker.tomcat3.host=localhost中的localhost改为远程服务器的IP地址即可。本次配置都是本地的tomcat,并且在一台机器上,所以端口号都不相同,如果在不同服务器上,端口号则不需要更改。
Tomcat配置
修改之前复制好的三份tmocat中的server.xml配置,打开conf/server.xml文件,修改如下图:
tomcat1:
Tomcat2:
Tomcat3:
结果测试
在tomcat下面的项目文件夹中修改web.xml,如这里使用test项目,则修改三个tomcat下面的test项目中的web.xml,在每个web.xml的<display-name>节点后添加新的节点<distributable/>。在每个test项目文件夹下新建test.jsp,内容如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="Java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.println("<b>Session 列表</b><br>");
System.out.println("============================");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="test.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
Session测试
项目部署好之后,启动三个tomcat以及Apache,启动顺序随意,然后再浏览器中输入http://localhost/test/test.jsp,结果如下图:
刷新页面,如下图:
再次刷新,如下图:
多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。那么session中的存储的东西呢,在输入框中分别输入1、1,2、2,3、3后,显示结果如下图:
节点插拔测试
关闭Tomcat
关闭tomcat3,刷新页面,可以不断访问tomcat1和tomcat2,再关闭tomcat2,只能够访问tomcat1,说明节点关闭时运行正常。
启动Tomcat
如果重启Tomcat2,无论怎么刷新,始终访问Tomcat3,无法访问tomcat2,这时利用另外台机器访问页面,发现Tomcat2正常,然后在刷本地页面,又可以访问Tomcat2了。对于每个新来的session,Apache按照节点配置中的lbfactor比重选择访问节点,如果某节点node1不能访问,则寻找下一可访问节点,并且将此node1就在该访问session的访问黑名单中,以后该session的访问直接不考虑node1,即使node1又可以访问了。而新来的session是无黑名单的,如果新的session能够访问到node1了,则会将node1在其他所有session访问的黑名单删除,这样其他session就又能访问node1节点了。经过以上测试,说明Tomcat集群和负载均衡已经实现了。
相关推荐
tomcat集群环境下的FineReport部署需要解决以下问题: 1. 配置权限、数据连接、模板、定时调度等只能每台服务器一个个配置,不会自动同步到所有服务器。 2. 多台服务器集群后,如何保证数据同步和灾备性? ...
本方案介绍了 FineReport 在 Tomcat 集群部署中的解决方案,旨在解决多台服务器集群后配置权限、数据连接、模板、定时调度等问题的同步问题。通过 FineReport 的集群部署插件,实现了灾备和文件同步,保证了数据同步...
【Tomcat集群部署方案】 Apache Tomcat集群部署是提高Web应用程序可伸缩性和高可用性的常见策略。在集群环境中,多个Tomcat实例协同工作,共同处理来自客户端的请求,从而实现负载均衡和故障转移。本方案将详细介绍...
在实现 FineReport 群集配置方案的过程中,我们需要安装和配置 Apache 服务器、Tomcat 服务器和 JK 连接器。 首先,我们需要安装 Apache 服务器。 Apache 服务器官方没有发布编译好的 Linux 二进制包,因此我们...
2. **下载FineReport**:访问FineReport官网,注册并下载适合Tomcat 8.0版本的FineReport部署包,通常是一个WAR文件。 3. **解压rar文件**:"fineReport集成tomcat8.0.rar"解压后,可能会包含配置文件、教程文档或...
在这个压缩包中,Finereport被配置在Tomcat服务器上运行,这意味着用户可以通过Web访问Finereport的管理界面和报表。 3. **文件夹结构**: - **bin**:包含Tomcat的启动和停止脚本,如`startup.sh`和`shutdown.sh`...
在配置FineReport报表服务器前,首要任务是确认你的机器上已经安装了Tomcat、Resin、Weblogic、Websphere等任一应用服务器,这些都是支持FineReport运行的基础。此外,FineReport安装包内还包含了一个Jetty服务器,...
对于高并发场景,可能需要进行服务器集群配置,以提升系统的稳定性和响应速度。 8. **升级与备份**:随着FineReport新版本的发布,及时进行软件升级可以享受更多新功能和优化。同时,定期备份服务器数据和配置,以...
2. 服务器内存修改:不同的服务器有不同的内存配置方法,例如Tomcat服务器需要修改catalina.bat文件来调整服务器内存大小。FineReport也提供了JVM参数配置方法,包括-Xms和-Xmx参数的使用。 3. FineReport内存机制...
通过简单的配置,即可将FineReport集成到Tomcat中。具体步骤可能包括配置web.xml文件,添加Servlet的定义和初始化参数,部署报表应用的WAR包到Tomcat服务器等。集成后,FineReport的报表功能可以通过Tomcat服务器...
1. 安装部署:首先下载FineReport服务器版本,将其解压后放入Tomcat的webapps目录下,启动Tomcat服务器即可。 2. 配置服务器:在Tomcat的server.xml文件中添加FineReport的Context配置,指定 FineReport的web应用...
数据延迟是指缓存中的数据可能不是最新的数据,而缓存同步是指在服务器集群中,各个服务器之间的缓存需要同步化。 二、模板结果共享缓存 模板结果共享缓存是指 FineReport 报表系统中的一种缓存技术,旨在提高报表...
2. **IFrame嵌入**:利用Tomcat服务器的配置文件来设置一个欢迎页面,该页面通过IFrame嵌入数据决策系统的登录界面。 下面我们将对这两种方案进行详细解析。 #### 方法一:设置跳转 **技术实现难度**:较低 **...
Spring Boot 2.6.13 集成 FineReport 11.0 需要 JDK 1.8、Maven 3.8.5、MySQL 8.0.23 及 Tomcat 等环境配置。用户需要安装这些组件,并配置好相应的设置。 知识点 2:数据库设置 FineReport 需要连接数据库以获取...
用户需在设计器中配置数据连接,编写SQL查询语句,获取所需数据。 5. **模板设计** 报表模板分为普通报表、分组报表、交叉报表等类型。通过行列的组合,可以构建各种复杂的报表结构。此外,FineReport还支持自定义...
总的来说,通过《FineReport自学习题 V2》这个压缩包,用户可以从理论到实践全面掌握FineReport的使用技巧,提升数据分析和报表制作能力,无论是在日常工作中还是在项目开发中,都能发挥出FineReport的强大效能。
然后,重启Tomcat服务器,部署即完成。 2. **嵌入式部署**: - 嵌入式部署适用于已经存在Web应用的情况。你需要按照帆软报表的目录结构,将报表相关的文件复制到现有Web工程的相应目录。具体操作包括将`WebReport\...
3. **配置应用**:在Spring Boot的配置文件`application.properties`或`application.yml`中,需要配置Finereport的相关参数,如服务器地址、数据库连接信息等。这些信息通常可以在Finereport的官方文档中找到。 4. ...
- 在增加服务器界面中选择本地目录,然后输入服务器名称并指定服务器路径。 - 路径一般指向`%FineReport_HOME%\WebReport\Web-INF`目录。 #### 五、总结 综上所述,FineReport是一款功能强大、易于使用的报表...