`

Tomcat开发技术之与HTTP服务器的集成 (3)

 
阅读更多

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与Apache服务器集成

    **标题:“Tomcat与Apache服务器集成”** 在Web开发领域,Apache HTTP Server(简称Apache)和Tomcat都是广泛使用的服务器软件。Apache以其稳定性和灵活性著称,主要用于处理静态内容;而Tomcat则是一个轻量级的...

    Tomcat与Java_Web开发技术详解3.pdf

    ### Tomcat与Java Web开发技术详解 #### 一、Tomcat简介 Tomcat是一款开源的Servlet容器,由Apache软件基金会下属的Jakarta项目开发。它实现了对Servlet和JavaServer Pages (JSP)的支持,可以作为独立的应用服务器...

    Tomcat与其他HTTP服务器集成

    然而,有时我们可能需要将Tomcat与其他HTTP服务器集成,以获得更高的性能、安全性或者利用其他服务器的特定功能。这种集成可以是Apache HTTP Server与Tomcat的组合,也可以是Nginx与Tomcat的配合,或者其他HTTP...

    Tomcat与Java Web开发技术详解

    通过阅读《Tomcat与Java Web开发技术详解》,读者不仅能掌握Tomcat服务器的深度使用技巧,还能系统地学习到Java Web开发的核心知识,为实际项目开发打下坚实基础。书中的实例和实践指导将帮助读者更好地理解和应用...

    tomcat 与 IIS 服务器集成

    本文将详细阐述如何将Apache Tomcat(一个流行的Java Servlet容器)与Microsoft IIS(互联网信息服务)服务器集成,以及在这个过程中涉及的关键组件——isapi_redirect-1.2.14.dll插件的使用。 首先,我们要理解...

    Tomcat与Java.Web开发技术详解(PDF)

    【标题】:“Tomcat与Java.Web开发技术详解”是一本深度探讨Tomcat服务器与Java Web应用开发的专业资料,旨在帮助开发者全面理解并掌握这两项关键技术。 【内容详解】: 1. **Tomcat介绍**:Tomcat是Apache软件基金...

    Tomcat与JavaWeb开发技术详解(孙卫琴)

    主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的集成,以及Tomcat的各种高级功能。书中内容注重理论与实践相结合,列举了大量具有典型性和实用价值的Web应用...

    Tomcat与Java Web开发技术详解(第2版).pdf

    《Tomcat与Java Web开发技术详解(第2版)》是一本深入探讨Java Web应用程序部署和运行环境的权威指南。本书主要围绕Apache Tomcat服务器展开,涵盖了从基础概念到高级特性的全方位讲解,旨在帮助读者掌握Java Web...

    Tomcat与Java.Web开发技术详解

    《Tomcat与Java.Web开发技术详解》是一本深入解析Tomcat服务器和Java Web开发的教程。本书旨在帮助读者全面理解如何使用Tomcat作为Java Web应用的运行环境,并掌握相关的开发和部署技巧。以下是对该主题的详细阐述:...

    Tomcat与Java Web开发技术详解 第二版配套光盘源码

    《Tomcat与Java Web开发技术详解》第二版是一本深入探讨如何使用Apache Tomcat服务器进行Java Web应用程序开发的专业书籍。作者孙卫琴以其丰富的教学和实践经验,为读者提供了全面而细致的技术指南。这本书的配套...

    Tomcat与Java.Web开发技术详解源代码

    Tomcat服务器支持HTTP、HTTPS协议,并且可以与其他Java EE组件(如数据库连接池、EJB容器等)集成,构建更复杂的企业级应用。 二、Tomcat的结构与工作流程 Tomcat主要由以下几个核心组件构成: 1. CATALINA:这是...

    BlazeDS集成Flex+Tomcat开发J2EE模块整合实例

    在BlazeDS和Flex的集成中,Tomcat常被用作部署服务器,承载BlazeDS服务以及与之交互的Flex应用程序。 在J2EE模块整合中,BlazeDS通常作为中间件,负责在Flex客户端和Tomcat服务器之间建立连接。开发者可以在Tomcat...

    [Tomcat与Java.Web开发技术详解][第一版][孙卫琴][PDF清晰版]+APK

    《Tomcat与Java.Web开发技术详解》是由孙卫琴编著的一本专业书籍,主要针对Java Web开发初学者和进阶者,详细介绍了如何使用Tomcat服务器进行Web应用的开发和部署。这本书以其清晰易懂的特点,深受读者喜爱,特别...

    tomcat+apache 6.0集成打包

    【标题】"tomcat+apache 6.0集成打包"涉及的是在服务器环境中整合Apache HTTP Server与Apache Tomcat的常见技术实践。这个压缩包包含了Apache 2.2.8和Tomcat 6.0.16这两个特定版本,以及JK模块(即mod_jk)的2.0.55...

    Tomcat与Java_Web开发技术详解4.pdf

    ### Tomcat与Java Web开发技术详解 #### 一、Tomcat简介 Tomcat是一款开源的Servlet容器,由Apache软件基金会下属的Jakarta项目开发。它实现了Servlet和JSP规范,可以作为独立的Web服务器来运行Java Web应用程序。...

    web服务器tomcat7.0

    10. **与IDE集成**:许多集成开发环境(IDEs),如Eclipse、IntelliJ IDEA,都提供了与Tomcat的无缝集成,使得开发和调试Java Web应用更为便捷。 总结,Apache Tomcat 7.0作为一个高效、易用的Web服务器,为基于JSP...

Global site tag (gtag.js) - Google Analytics