我已经在我的机器上创建了一个负载平衡方案,并且可以正常工作。但是,我只停留在一个简单的问题上,并寻求相同的帮助。
我有两个tomcat工人-worker1和worker2。
我也有一个称为平衡器的负载平衡器。
worker.properties文件的创建如下:
worker.tomcat_home =“ MyTomcatDirectory”
worker.java_home =“ MyJDKDirectory”
worker.list = tomcat1,tomcat2
worker.list =平衡器
worker.tomcat1.type = ajp13
worker.tomcat1.host =本地主机
worker.tomcat1.port = 8009
worker.tomcat1.lbfactor = 1
worker.tomcat2.type = ajp13
worker.tomcat2.host =本地主机
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目录中的httpd.conf文件中添加了以下几行-
JkMount /平衡器
JkMount / *平衡器
JkMount / webapp1 worker1
JkMount / webapp1 / * worker1
这也很好。唯一的问题是,如果tomcat1(worker1)关闭,则平衡器不会将对webapp1的请求定向到tomcat2(worker2)。我该如何解决这个问题?
最佳答案
如果您希望请求默认情况下转到工作程序1,然后仅在工作程序1失败时才转到工作程序2,则需要使用两个工作程序(tomcat1b和tomcat2b)设置第二个lb worker(称为lb2),并使用distance参数使tomcat2b的距离比tomact1b大。除非tomcat1b失败,否则这将导致tomcat1b优先于tomcat2b使用。
有关更多信息,请参见worker.properties文档:
http://tomcat.apache.org/connectors-doc/reference/workers.html
顺便说一句,在worker.properties中有tomcat1,但在JKMount中有worker1。那行不通。