Tomcat负载平衡

时间:2013-02-20 08:25:43

标签: java tomcat apache2 load-balancing

我已经在我的机器中创建了一个负载平衡场景,同样可以正常工作。但是,我遇到了一个简单的问题并请求帮助。

我有两个tomcat工作者 - worker1和worker2。 我还有一个称为平衡器的负载均衡器。 workers.properties文件已创建如下 -

  • workers.tomcat_home =" MyTomcatDirectory"
  • workers.java_home =" MyJDKDirectory"
  • worker.list = tomcat1,tomcat2
  • worker.list =平衡器
  • worker.tomcat1.type = ajp13
  • worker.tomcat1.host = localhost
  • worker.tomcat1.port = 8009
  • worker.tomcat1.lbfactor = 1
  • worker.tomcat2.type = ajp13
  • worker.tomcat2.host = localhost
  • worker.tomcat2.port = 8019
  • worker.tomcat2.lbfactor = 1
  • worker.balancer.type =磅
  • worker.balancer.balance_workers = tomcat1,tomcat2
  • worker.balancer.method = B`

现在,我有一个webapp说 webapp1 ,它被最终用户广泛使用。因此,我希望所有用户对 webapp1 的请求都应由worker1处理。为此,我在apache的conf dir中的httpd.conf文件中添加了以下行 -

  • JkMount / balancer
  • JkMount / * balancer
  • JkMount / webapp1 worker1
  • JkMount / webapp1 / * worker1

这也很好。这里唯一的问题是如果tomcat1(worker1)关闭,则平衡器不会将webapp1的请求定向到tomcat2(worker2)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果你想要请求默认转到worker 1然后转到worker 2当且仅当worker 1失败时你才需要设置第二个lb worker(称之为lb2)和两个worker(tomcat1b和tomcat2b)并使用distance参数给tomcat2b一个比tomact1b更大的距离。这将导致tomcat1b优先于tomcat2b使用,除非tomcat1b失败。

有关详细信息,请参阅workers.properties文档: http://tomcat.apache.org/connectors-doc/reference/workers.html

顺便说一下,你的workers.properties中有tomcat1,但是你的JKMount中有worker1。那不行。