2012-08-01 71 views
0

背景:在我的应用程序中,我使用ServiceMix实例来提供HTTP请求。为了平衡这些,我们找出了(根据某些要求)我们需要使用Tomcat。只能使用tomcat作为负载均衡器(无Apache Http服务器)

问题:我认为应该说tomcat内置了自己的http服务器,可以使用Tomcat和mod_jk(没有Apache Http Server)作为负载均衡器吗?

我的读数:我看了几Tomcat的domcumentation像Tomcat Clustering docTomcat JK load balancer(这是不是很有用)

所以我奇怪的是它甚至有可能只使用Tomcat和mod_jk的为宗旨负载均衡!!

任何帮助表示赞赏。

回答

1

mod_jk在Apache httpd服务器或其他服务器中运行,它是用本机代码编写的,下面是一些可以工作的配置。

  1. 的Apache的httpd或mod_jk的负载平衡请求Tomcat服务器IIS
  2. 与反向代理支持和负载平衡功能的Web服务器可以使用
  3. 专用负载平衡器产品可用于

对于负载均衡,您需要确保确定您需要粘滞会话路由的天气。

另外你也不需要配置tomcat集群会话管理器来配置和使用负载平衡。

我相当肯定,tomcat本身的java部分没有内置负载均衡器,它期望用户使用上述选项之一。

2

要负载平衡你的应用程序,你需要运行两个或更多的Tomcat实例和同一个应用程序。您可以在同一台计算机上的不同端口(例如www.myapp.com:8080和www.myapp.com:9090)或同一端口上的不同机器上运行两个实例(例如www1.myapp.com:8080和www2。 myapp.com:8080)。通常这些实例共享相同的后端数据存储。每个Tomcat都是它自己的网络服务器,所以你将有多个Web服务器在运行。

因为您现在有两个相同的实例,用户可以使用这两个实例中的任何一个。如果他们当前使用的机器出现问题,他们也可以从一个切换到另一个。但您不希望用户必须手动选择机器或交换。这是负载平衡器进来的地方。

负载均衡器接受来自用户的请求并将其动态路由到您的负载平衡实例之一。负载均衡器也是一个Web服务器。它可以是像BIG-IP F5这样的硬件负载均衡器,也可以是像Apache,Nginx或甚至另一个Tomcat服务器这样的软件。

如果您使用Apache Web服务器进行负载平衡,则需要一个Apache模块将请求传递给您的某个Tomcat服务器。通常这是mod_jk或mod_proxy。

所以简短的回答是,如果你使用Apache作为你的负载平衡器,那么你必须使用mod_jk(或mod_proxy)。如果你使用另一个负载平衡器,那么你不能使用mod_jk。

另请参阅Tomcat load balancer solutions

+0

感谢所有的答复..从@leonm回答引用:*它可以是一个硬件负载均衡器就像一个BIG-IP F5,或软件如Apache,Nginx的甚至另一个Tomcat服务器*。我正在寻找您建议的第三个软件选项(另一个Tomcat服务器)。想知道如何可能。 – 2012-08-01 11:06:41

相关问题