2012-03-10 93 views
8

我正在寻找一个与Tomcat一起使用的良好负载平衡器。我们的应用程序不会在会话上下文中存储任何内容,因此为同一用户重定向到同一台服务器并不重要。我只是喜欢一些可以将请求循环方式或基于每个服务器的单个负载排队的东西。我还希望能够将应用程序服务器添加到可用于处理请求的应用程序服务器,而无需重新启动负载平衡器。如果有问题,我们正在linux上运行应用程序。Tomcat负载平衡器解决方案

+0

多大的应用程序,你说这里?如果它只是两台服务器来处理负载,则可以在Web服务器级别执行此操作。如果您正在查看5台以上的服务器,则可能需要查看商业解决方案。 – Sean 2012-03-10 20:50:12

+0

可能有5个以上的服务器。 – 2012-03-11 00:19:17

回答

6

如果你需要的是在Linux上使用Apache Webserver2,MOD-JK和Tomcat集群软件负载平衡器:

在你的web服务器:

1)安装的Apache2和modjk:

sudo apt-get install apache2 libapache2-mod-jk 
sudo a2enmod jk 

2)为你的apache2创建一个“workers.properties”文件。在某些情况下,ist会自动在/ etc/apache2目录中创建。此文件是抱着你的Tomcat服务器的LB配置,节点名称,IPS和端口,即:

worker.list=balancer,lbstats 

#node1 
worker.node1.type=ajp13 
worker.node1.host=NODE-IP 
worker.node1.port=NODE-AJP-PORT 
worker.node1.lbfactor=10 

#more nodes here ... (change name in between) 

#lb config 
worker.balancer.type=lb 
#turn off sticky session 
worker.balancer.sticky_session=0 

#add all defined node names to this list: 
worker.balancer.balance_workers=node1 

#lb status information (optional) 
worker.lbstats.type=status 

3)在你的Apache2配置文件创建一个MOD-JK部分,如果没有自动创建它。

JkWorkersFile /etc/apache2/workers.properties 
JkLogFile  /var/log/apache2/mod_jk.log 
JkShmFile  /tmp/jk-runtime-status 
JkLogLevel  info 

4)安装应用程序的负载均衡器(Apache2的配置文件):

JkMount /MyApp  balancer 
JkMount /MyApp/*  balancer 

JkMount /modjkstatus lbstats 

在你的Tomcat服务器:

5)使用压缩包包安装Tomcat(更好的方式则适当的版本)。更改server.xml:

  1. 禁用http连接器。
  2. 启用AJP/1.3连接器并设置您在此节点的workers.properties中定义的端口。
  3. 用正确的节点名称添加的jvmRoute的 “引擎” 元素:

    <Engine jvmRoute="node1" ... 
    
  4. 添加一个 “集群” 元素的简单配置

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" /> 
    

6)将应用程序部署到所有的tomcat,并在web.xml中添加可分发的元素。

<distributable/> 

7)确保web服务器可以访问tomcat服务器上的ajp端口,而其他人不能。

8)一个接一个地启动web服务器和tomcats并检查日志(也是/var/log/apache2/mod_jk.log)。

9)访问你的应用程序:http://mywebserver.com/MyApp

10)检查(和拒绝访问)的LB状态页http://mywebserver.com/modjkstatus

+0

modjk和modcluster有什么不同? – user12458 2014-12-09 10:34:10

+0

mod_cluster是一个不同的[来自JBoss的负载平衡解决方案](http://mod-cluster.jboss.org/) – Stefan 2014-12-09 10:42:16