Tomcat负载平衡器解决方案

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


如果你只需要一个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 config,节点名称,Iips和端口,即:

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)使用tar包安装tomcat(比apt verison更好)。 更改server.xml:

  • 禁用http连接器。
  • 启用AJP / 1.3连接器并设置您在此节点的workers.properties中定义的端口。
  • 将具有正确节点名称的jvmRoute添加到“Engine”元素中:

    <Engine jvmRoute="node1" ...
    
  • 为最简单的配置添加一个“Cluster”元素

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />
    
  • 6)将您的应用程序部署到所有tomcats,并将可分发元素添加到您的web.xml。

    <distributable/>
    

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

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

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

    10)检查(并拒绝访问)lb状态页面http://mywebserver.com/modjkstatus

    链接地址: http://www.djcxy.com/p/62221.html

    上一篇: Tomcat load balancer solutions

    下一篇: .NET 4.5 WebSockets vs SignalR