0

我在我的机器上创建了一个负载平衡场景,并且同样工作正常。但是,我被困在一个简单的问题上并请求帮助。

我有两个 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=lb
  • worker.balancer.balance_workers=tomcat1,tomcat2
  • worker.balancer.method=B`

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

  • JkMount/平衡器
  • JkMount /* 平衡器
  • JkMount /webapp1 worker1
  • JkMount /webapp1/* worker1

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

4

1 回答 1

1

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

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

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

于 2013-02-20T21:18:34.627 回答