环境准备
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集群和负载均衡已经实现了。
相关推荐
FineReport关于tomcat集群部署的方案.docx
FineReport关于tomcat集群部署的方案.pdf
ApacheTomcat集群部署配置整合方案
配置FineReport服务器之前,首先确保机器上已经安装了Tomcat, Resin,Weblogic,Websphere等应用服务器之一; 在FineReport的安装软件中内置了一个jetty服务器,也可以启动它来浏览报表。
fineReport报表工具服务器部署安装操作手册,没有坑的手册
帆软报表FineReport中数据连接中的Tomcat配置JNDI连接,要通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,本文进行详细演示。
在Linux中用Apache+Tomcat+JK实现负载均衡和群集的完整过程,亲测OK。
类excel报表开发工具FineReport教程之服务器性能优化:内存.pdf
对于finereport报表使用者很有帮助,离线帮助文档
关于finereport 一些操作,与应用及服务器整合,以tomcat为例附带实例和轩相关说明。
1. FineReport 1 1.1. 简介 1 1.2. 应用范围 2 1.3. 制作流程 3 2. 数据准备 4 ...4.2.1. 服务器部署 55 4.2.2. 网页集成 58 4.2.3. 其他方式 60 5. 使用报表 61 6. 报表修改 63 7. 二次开发简介 64
finereport.jar结合 finereport.jar结合 finereport.jar结合
有了FineReport报表工具,在软件开发过程中,可以革命性的加快开发速度,提高软件的稳定性;在软件交付后,可以大大的降低维护难度,提高最终用户的满意度。开发出的软件可以做到随需应变。 FineReport报表软件功能...
FineReport自学习题 V2 包括试题以及每一题对应的制作图表,可以对照制作相应报表。
FineReport缓存技术包括数据集缓存和模板结果共享缓存,合理的使用缓存可以有效的提高性能
FineReport V7.0.2产品介绍
Web报表工具FineReport完整教程
fineReport集成到java项目中,从依赖文件到写模板,然后到动态合成数据完整过程
Spring Boot2.6.13集成FineReport11.0教程
FineReport填报全选及批量打印模板; FineReport填报全选及批量打印模板; FineReport填报全选及批量打印模板; FineReport填报全选及批量打印模板;