Apache Tomcat Servlet/JSP 容器

Apache Tomcat 5.5 Servlet/JSP 容器

Jaxmao Logo

链接

用户手册

参考

Apache Tomcat 开发

Apache Tomcat 5.5 Servlet/JSP 容器

怎样配置负载均衡

Printer Friendly Version
print-friendly
version
目录

使用JK 1.2.x 本地连接器
使用 Apache HTTP Server 2.x 和 mod_proxy
使用具有均衡功能的web应用

使用JK 1.2.x 本地连接器
请参考 JK 1.2.x 相关文档.
使用 Apache HTTP Server 2.x 和 mod_proxy
请参考 Apache HTTP Server 2.2.x的mod_proxy有关文档. 它支持 HTTP 或者 AJP 方式的负载均衡. 新版的 mod_proxy 在 Apache HTTP Server 2.0业可以使用, 但 mod_proxy 是从Apache HTTP Server 2.2中分离编译出来的。
使用具有均衡功能的web应用
概要

Tomcat 5.0.15 及以后版本均带有叫做balancer的web应用。这是一个基于规则的负载均衡的简单实现。 它不是设计用来代替其它用于高流量环境的装载均衡机制。相反,它是个简单的,纯Java,易扩展,在多个服务器之间是分担负载的简便方式。

尽管Tomcat自带带均衡器,但它不是Tomcat特有的,它不需要任何修改就能在其他容器上运行。 如果你想通过过滤器来重定向客户端请求,该web应用需要支持Servlet 2.3或其后版本的容器。 如果你想通过servlet来重定向客户端请求,你可以使用任意的servlet容器。

配置范例

默认的均衡器安装使用一个单独的过滤器,BalancerFilter,用来映射所有的请求(url-pattern /*)。 过滤器从web应用部署描述文件(web.xml)里指定的规则文件中读取规则。默认的规则有:

  • URL里含有"News"的请求转向www.cnn.com
  • 把一个带有paramName的参数,参数值是paramValue的请求转向www.yahoo.com。
  • 把所有其它请求转向jakarta.apache.org。
因此,当你安装并启动好tomcat之后,在浏览器中访问http://localhost:8080/balancer,将被转向到http://jakarta.apache.org。 如果浏览器访问http://localhost:8080/balancer/News,将被转向到http://www.cnn.com。 一个http://localhost:8080/balancer/BlahBlah?paramName=paramValue的请求会被转向到http://www.yahoo.com。

负载均衡规则

均衡器系统的规则是一个请求匹配条件,以及相匹配请求的URL重定向的组合。这些规则实现org.apache.webapp.balancer.Rule接口。

均衡器发布包自带许多有用的规则。这个框架被设计成很方便扩展,这样你可以快速编写你自己的规则。 规则必须是标准的JavaBean (公有的无参数构造方法, 属性具有公有的setter 方法,比如 属性xxx的setXXX ), 就象它们被Jakarta Commons Digester实例化那样。关于规则的可使用性或怎样把你的规则包含到发布包中去,请到tomcat-user邮件列表上询问。

规则被组装在RuleChains里边。每个BalancerFilter (或者 Servlet/JSP)在做转向的决定时参考一个RuleChain。 注意,你不是象范例配置里那样被限制只有一个对应于/*的过滤器。你可以使用Servlet Specification里定义的full filter mapping可能性,随意配置多少你想要的过滤器。每个过滤器有它自己的RuleChain。

它是怎么工作的

  1. 首先编写一个包含各种匹配规则和重定向的配置文件。
  2. 在web.xml文件中定义均衡器过滤器,将它映射到你想要的url(通常都是 /*) ,并通过配置文件里的规则来配置。
  3. 服务器启动,初始化过滤器。
  4. 请求传入服务器。过滤器匹配规则链来决定把这个请求转向哪里。规则是按照规则配置文件里定义的顺序来进行匹配的。 找到第一个匹配上的规则后,不再继续匹配,这个请求马上被重定向。

备注

请将问题,评论,建议等发往tomcat-user邮件列表。谢谢。


Copyright © 1999-2006, Apache Software Foundation