`
chengyue2007
  • 浏览: 1490140 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Tomcat6.0负载均衡策略

    博客分类:
  • java
阅读更多

其实无论是分布式,数据缓存,还是负载均衡,无非就是改善网站的性能瓶颈,在网站源码不做优化的情况下,负载均衡可以说
是最直接的手段了。其实抛开这个名词,放开了说,就是希望用户能够分流,也就是说把所有用户的访问压力分散到多台服务器上,也可以
分散到多个tomcat里,如果一台服务器装多个tomcat,那么即使是负载均衡,性能也提高不了太多,不过可以提高稳定性,即容错性。
当其中一个主tomcat当掉,其他的tomcat也可以补上,因为tomcat之间实现了Session共享。待tomcat服务器修复后再次启动,就会
自动拷贝所有session数据,然后加入集群。这样就可以不间断的提供服务。如果要真正从本质上提升性能,必须要分布到多台服务器。
同样tomcat也可以做到。网上相关资料比较多,可以很方便的查到,但是质量不算高。我希望可以通过这篇随笔,系统的总结。本文的
例子是同一台服务器上运行两个tomcat,做两个tomcat之间的负载均衡。其实多台服务器各配置一个tomcat也可以,而且那样的话,可以使用
安装版的tomcat,而不用是下文中的免安装的tomcat,而且tomcat端口配置也就不用修改了。下文也会提到。

tomcat的负载均衡需要apache服务器的加入来实现。在进行配置之前请先卸载调已安装的tomcat,然后检查apache的版本。
我这次配置使用的是apache-tomcat-6.0.18免安装版本,我亲自测试后推断安装版的tomcat在同一台机子上会不能启动两个以上,可能是
因为安装版的tomcat侵入了系统,导致即使在server.xml里修改了配置,还是会引起冲突。所以我使用tomcat免安装版。
apache使用的是apache_2.2.11-win32-x86-no_ssl.msi。如果版本低于2.2负载均衡的配置要有所不同,因为这个2.2.112.2.8版本
集成了jk2等负载均衡工具,所以配置要简单许多。别的版本我没有具体测试,有待考究。这两个软件可以到官方网站下载。

Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。服务启动后在浏览器中
输入http://localhost进行测试,如果能看到一个"It works!"的页面就代表Apache已经正常工作了。把tomcat解压到任意目录,赋值一个另命名。
起名和路径对配置没有影响。但要保证端口不要冲突,如果装有OracleIIS的用户需要修改或关闭相关接口的服务。当然jdk的配置也是
必须的,这个不再过多叙述。

首先,在Apache安装目录下找到conf/httpd.conf文件,去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy
模块。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so


向下拉动文档找到节点,在DirectoryIndex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小
猫首页,可以不做。继续下拉文档找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。

然后打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上

<VirtualHost *:80>
ServerAdmin
管理员邮箱
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://sy/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://sy/
ErrorLog "logs/sy-error.log"
CustomLog "logs/sy-access.log" common
</< span>VirtualHost>



然后回到httpd.conf,在文档最下面加上

ProxyRequests Off
<proxy balancer://sy>

BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</< span>proxy>



ProxyRequests Off 是告诉Apache需要使用反向代理,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因子,
Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat
1Apache就按11的比例转发,如果是21就按21的比例转发。这样就可以使配置更灵活,例如可以给性能好的服务器增加处理
工作的比例,如果采取多台服务器,只需要修改ip地址和端口就可以了。route参数对应后续tomcat配置中的引擎路径(jvmRoute)。
如果仅仅为了配置一个可用的集群,Tomcat的配置将会非常简单。分别打开两个tomcatserver.xml配置文件,其中一台可以采用默认
的设置,只需要修改两个地方,而另一个要有较大改动以避免与前一台冲突。如果两台不在同一台服务器上运行,对于端口就不需做改动。首先是
配置关闭端口,找到,第一台不变,把第二台改为9005
下面配置Connector的端口,找到non-SSL HTTP/1.1 Connector,即tomcat单独工作时的默认Connector,保留第一台默认配置,在8080
口侦听,而把第二台设置为在9080端口侦听。往下找到AJP 1.3 Connector,,这是
tomcat接收从Apache过来的ajp连接请求时使用的端口,保留第一台默认设置,把第二台端口改为9009。第一台tomcatserver.xml中找到
,去掉这段或改为注释,把上方紧挨的
注释符去掉,对于第二台,去掉注释符并把jvm1改为jvm2
向下找到,去掉注释,这里的配置是为了可以在集群中的所有tomcat节点
间共享会话(Session)。如果仅仅为了获得一个可用的tomcat集群,Cluster只需要这么配置就可以了。
只需要简单的几步就配置完成,然后可以测试一下是否配置成功。引用网上的一个测试方法,就是在webapps目录下新建test目录,在test
录下新建test.jsp文件,代码我稍作改动如下:

<html><head><title>shiyangtitle>head> 
<body> 
服务信息: 


<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 value="提交"> 
form> 
body> 
html> 

 

在test目录下继续新建WEB-INF目录和web.xml,在节点下加入,这一步非常重要,是为了通知tomcat服务器,
当前应用需要在集群中的所有节点间实现Session共享。如果tomcat中的所有应用都需要Session共享,也可以把conf/context.xml中的
改为,这样就不需对所有应用的web.xml再进行单独配置。测试代码完成!

先启动Apache服务,在先后启动两台tomcat,分别点startup.bat批处理。如果一切顺利的话,就会启动成功。再次访问http://localhost
可以看到小猫页面。访问http://localhost/test/test.jsp。可以看到包括服务器地址,端口,session等信息在内的页面。
然后你可以测试一下容错功能,关闭一个tomcat,看看服务是否正常,然后重启tomcat,关掉另一台tomcat,看看
是否也可以继续提供服务。当然你也可以配置多台tomcat,但是原理都一样。
OK,讲到这里。

 

 

 

 

分享到:
评论

相关推荐

    apache2.2+tomcat6.0负载均衡配置软件

    以上就是Apache 2.2与Tomcat 6.0负载均衡配置的基本步骤和概念。在实际环境中,可能还需要根据业务需求调整配置,如添加故障转移机制、监控服务器健康状况等。记住,测试和监控是确保负载均衡有效性的关键环节。

    Apache2.2+tomcat6.0搭建负载均衡服务器

    通过以上步骤,你可以创建一个基本的Apache2.2+Tomcat6.0负载均衡服务器,为高流量的Web应用提供稳定的服务。然而,实际部署中可能还需要考虑SSL配置、安全策略、性能优化和其他高级负载均衡策略,如轮询、最少连接...

    web服务器 tomcat6.0

    8. **集群与负载均衡**:Tomcat 6.0支持多实例间的session复制,实现集群环境下的高可用性。配合负载均衡器,可以实现请求在多个Tomcat实例间的分配,提高系统整体处理能力。 9. **错误处理与调试**:Tomcat提供...

    tomcat6.0+memcached 依赖jar包

    同时,为了保持良好的系统性能,应合理设置Memcached的内存大小和服务器的负载均衡策略。 总结来说,将Tomcat 6.0与Memcached集成涉及到Java客户端库的选择和配置,以及应用层面上的数据缓存策略。这个压缩包提供的...

    apache2.2 tomcat6.0 集群与负载均衡

    总结来说,Apache 2.2 与 Tomcat 6.0 集群和负载均衡的配置是一项复杂但至关重要的任务,涉及到服务器复制、会话共享、负载均衡策略以及故障恢复等多个环节。通过精心设计和实施,可以构建出稳定、高效的Web服务环境...

    Tomcat6.0Tomcat6.0Tomcat6.0Tomcat6.0Tomcat6.0

    4. 集群与负载均衡:Tomcat6.0支持集群配置,通过负载均衡策略,将请求分发到不同的服务器,提高系统的可用性和扩展性。 三、实战应用 1. 配置部署:详细解析如何在Tomcat6.0上部署WAR文件或目录结构,包括自动...

    Windows+Nginx+Tomcat搭建负载均衡和集群的tomcat压缩包

    Nginx会根据预设的负载均衡策略(轮询、权重、最少连接等)将请求分发到不同的Tomcat节点。你可以使用Nginx的日志文件和Tomcat的管理界面监控集群的运行状态。 5. **集群高可用性**:为了提高系统的健壮性,可以...

    两台服务器上做Apache2.2+Tomcat6.0+mod_jk的负载均衡

    "两台服务器上做Apache2.2+Tomcat6.0+mod_jk的负载均衡"是一个典型的分布式系统架构,旨在通过在多台服务器之间分配工作负载来提高系统的稳定性和性能。下面将详细介绍这个配置涉及的知识点: 1. **Apache ...

    apachetomcat6.0.rar

    这可以通过设置复制、session共享和负载均衡策略来实现。 10. **故障排查**:当遇到问题时,可以通过查看错误日志、检查服务器状态、使用JMX监控工具等方法来定位和解决问题。 总之,Apache Tomcat 6.0是一个强大...

    apache2.2+tomcat6.0.doc

    8. **负载均衡策略**: 在这个配置中,使用的是轮询策略(round-robin),每个请求依次分配到每个Tomcat实例。`sticky_session`参数设为1,意味着在一次会话期间,用户的所有请求会被定向到同一个Tomcat实例,以保持...

    tomcat 6.0

    - **集群与负载均衡**:在高并发场景下,可以考虑使用Tomcat集群和负载均衡策略,提高系统的可用性和可扩展性。 总结来说,Tomcat 6.0是Java Web开发中的一个重要组件,与MyEclipse结合,为开发者提供了便捷的开发...

    apache2.2.4+tomcat6.0整合配置

    Apache与Tomcat的整合通常通过Apache的模块mod_jk实现,它是一个连接Apache和Tomcat的负载均衡器。mod_jk模块负责将HTTP请求路由到适当的Tomcat实例。在这个案例中,我们需要的是mod_jk-2.2.4.so,这是对应Apache ...

    tomcat 6.0 服务器

    此外,通过负载均衡策略,可以将请求分发到多个实例,提高系统性能。 10. **性能优化**:为了提升性能,开发者可以通过调整JVM参数、启用压缩、限制最大连接数等方式对Tomcat进行优化。同时,定期更新到官方发布的...

    tomcat6.0

    11. **集群与负载均衡**:Tomcat支持集群部署,通过复制Session和负载均衡策略,实现高可用性和容错性。 12. **与IDE集成**:Eclipse、IntelliJ IDEA等IDE可以方便地与Tomcat集成,进行开发和调试。 13. **版本...

    Apache2.2 tomcat-6.0.18负载均衡与集群

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而Apache2.2和Tomcat的组合在处理高并发请求时常常被用作负载均衡和集群解决方案。本主题主要探讨的是如何在Apache2.2和Tomcat-6.0.18环境下实现负载均衡与集群...

    tomcat6.0服务器

    4. **集群与负载均衡**:通过配置`Cluster`和`Engine`元素,可以实现Tomcat的集群和负载均衡,提高应用的可用性和可扩展性。 总结,Tomcat 6.0是一款优秀的Java Web服务器,提供了丰富的功能和良好的扩展性,对于...

Global site tag (gtag.js) - Google Analytics