6、Apache与多个Tomcat服务器集成时的负载平衡
在实际应用中,如果网站的访问量非常大,为了提高访问速度,可以将多个Tomcat服务器与Apache集成,让它们共同分担运行Servlet/JSP 组件的任务。 JK插件的loadbalancer(负载平衡器)负责根据在workers.properties文件中预先配置的lbfactor(负载平衡因数)为 这些Tomcat服务器分配工作负荷,实现负载平衡。
假定Apache和两个Tomcat服务器集成,一个Tomcat服务器和Apache运行在同一台机器上,使用的JK端口为8009,还有一个 Tomcat服务器运行在另一台机器上,主机名为anotherhost,使用的JK端口为8009。以下是把Apache和这两个Tomcat服务器集 成的步骤。
(1)把mod_jk_2.0.46.dll拷贝到/lib目录下。
(2)在/conf目录下创建如下的workers.properties文件(注意粗体部分的内容):
ps=\ #指定文件路径分割符 worker.list=worker1, worker2,loadbalancer worker.worker1.port=8009 #工作端口,若没占用则不用修改 worker.worker1.host=localhost #Tomcat服务器的地址 worker.worker1.type=ajp13 #类型 worker.worker1.lbfactor=100 #负载平衡因数 worker.worker2.port=8009 #工作端口,若没占用则不用修改 worker.worker2.host=anotherhost #Tomcat服务器的地址 worker.worker2.type=ajp13 #类型 worker.worker2.lbfactor=100 #负载平衡因数 worker.loadbalancer.type=lb worker.loadbalancer. balanced_workers=worker1, worker2 |
以上文件创建了两个worker:worker1和worker2分别代表两个Tomcat服务器,它们由worker.loadbalancer来分配工作负荷。
(3)修改/conf/httpd.conf文件,在文件末尾加入如下内容:
# Using mod_jk2.dll to redirect dynamic calls to Tomcat LoadModule jk_module modules\mod_jk_2.0.46.dll JkWorkersFile "conf\workers.properties" JkLogFile "logs\mod_jk2.log" JkLogLevel debug JkMount /*.jsp loadbalancer JkMount /helloapp/* loadbalancer |
当客户请求"/*.jsp"或"/helloapp/*"形式的URL,该请求都由loadbalancer来负责转发,它根据在workers.properties文件中为worker1和worker2分配的lbfactor属性,来决定如何调度它们。
只有在使用了loadbalancer的情况下,workers.properties文件中worker的lbfactor属性才有意义,lbfactor取值越大,表示分配给Tomcat服务器的工作负荷越大。
(4)修改两个Tomcat服务器的JK端口,确保它们和workers.properties文件中的配置对应。此外,在使用了loadbalancer后,要求worker的名字和Tomcat的server.xml文件中的元素的jvmRoute属性一致。
所以应该分别修改两个Tomcat的sever.xml文件,把它们的元素的jvmRoute属性分别设为worker1和worker2。以下是修改后的两个Tomcat服务器的元素:
Tomcat服务器1:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker1"> |
Tomcat服务器2:
<Engine name="Catalina" defaultHost="localhost" debug="0" jmvRoute="worker2"> |
(5)在完成以上步骤后,分别启动两个Tomcat服务器和Apache服务器,然后访问 http://localhost/index.jsp,会出现Tomcat服务器的默认主页。由于此时由loadbalancer来调度Tomcat服 务器,因此不能断定到底访问的是哪个Tomcat服务器的index.jsp,这对于Web客户来说是透明的。
如果在进行以上实验时,两个Tomcat服务器都在同一台机器上运行,应该确保它们没有使用相同的端口。在Tomcat的默认的server.xml中,一共配置了以下3个端口:
<Server port="8005" shutdown="SHUTDOWN" debug="0"> <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --> <Connector port="8080" /> <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 --> <Connector port="8009" /> |
如果两个Tomcat服务器都在同一台机器上运行,则至少应该对其中一个Tomcat服务器的以上3个端口号都进行修改。
此外,如果把Tomcat和其他HTTP服务器集成,Tomcat主要负责处理HTTP 服务器转发过来的客户请求,通常不会直接接受HTTP请求。因此为了提高Tomcat的运行性能,可以关闭Tomcat的HTTP连接器,方法为在 server.xml中把Tomcat的HTTP Connector的配置注释掉。
相关推荐
主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用...
tomcat6.0服务器,可以在上面运行java代码或者集成eclipse进行代码开发
主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。 书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用...
内容如下: Eclipse/Tomcat集成开发环境搭建 下载Tomcat 5.5.23并安装测试服务器是否成功 配置Eclipse的Web Tool插件工具最新版 配置Eclipse Web运行环境 jsp页面测试
JTM是Win32下绿色免费的JDK + Tomcat + MySQL环境集成工具。通过JTM用户无需对JDK、Tomcat、 MySQL进行任何安装和配置即可迅速搭建支持JSP + MySQL的服务器运行环境。 二、系统需求及集成软件 1. 系统需求: ...
按照读者的学习规律,本书在介绍Java技术的基础上,循序渐进地介绍了如何在最新的Tomcat上开发整合各种Java Web应用技术,以及如何将Tomcat和其他主流HTTP服务器集成并创建具有实用价值的企业Java Web应用方案。
主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。 书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用...
开发环境 eclipse java EE 4.5.0...集成了Quercus,让php也能在Tomcat服务器中运行,可以在php中调用java类。php调用java时遇到中文乱码问题,在DEMO中也有提出我的解决方案,如果有更好的解决方案也请大家不吝惜指教。
企业级智能网站服务器多语言集成包AiWnmp是基于开源程序Nginx Mysql/MariaDB Perl/PHp/CGI Zend FTPserver Apache/Tomcat和PHPmyadmin等成熟技术封装而来。自主研发了集成控制,其特点:高负载、方便、实用、免安装...
内容如下: Eclips/TomCate集成开发环境搭建 下载Tomcat 5.5.28并安装测试服务器是否成功 配置Eclipse的Web Tool插件工具最新版 配置Eclipse Web运行环境 jsp页面测试
tomcat 服务器集成开发osgi框架,运行osgi应用程序
此版本是window系统下的用与整合apache与tomcat服务器的工具
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现...
再介绍了JUnit,Eclipse配置管理,Eclispe开发环境中的应用服务器Tomcat,Eclipse中的资源构建和构建工具Ant;最后介绍了Eclipse下的Web应用开发、插件开发技术、Struts应用开发和MySQL数据库应用开发。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台...
Java开发,集成到eclipse for Java ee 的 Web 应用服务器 Tomcat 7.0下载
基于Tomcat日志预处理原型的Java开发研究,窦亮,胡君萍,随着J2EE技术的兴起,许多公司需要一些Java开发的代码或软件使他们的网站能够处理如Tomcat或Weblogic服务器产生的日志,以便集成到自己的�
亿美集成环境服务器(ExmayServerX)是国内最专注的JAVA开源软件组织之一,国内第一个致力JAVA企业级开源软件的公司,国内首家开源软件社会企业――长沙亿美软件有限公司旗下基于JAVA技术研究开发的具有自主核心技术...
把Tomcat与IIS集成,可以扩展IIS的功能,使它支持Java Web应用。 1. 下载isapi_redirect.msi安装文件或isapi_redirect.dll文件 从http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/...
apache-tomcat-7.0.68 一款集成与web开发的服务器