我的应用程序使用Apachemod-jkTomcat进行负载平衡,此work.properties可以正常工作:

worker.list=workerlist
# Set properties for worker3
worker.worker3.type=ajp13
worker.worker3.host=xxxx
worker.worker3.port=xx
worker.worker3.lbfactor=4
worker.worker4.ping_mode=A
worker.worker3.socket_timeout=30
worker.worker3.reply_timeout=30000

# Set properties for worker4
worker.worker4.type=ajp13
worker.worker4.host=xxxx
worker.worker4.port=xx
worker.worker4.lbfactor=4
worker.worker4.ping_mode=A
worker.worker4.socket_timeout=30
worker.worker4.reply_timeout=30000

# Set properties for workerlist(lb)
worker.workerlist.type=lb
worker.workerlist.balance_workers=worker4,worker3
worker.workerlist.sticky_session=1

worker.list=jkstatus
worker.jkstatus.type=status


发生的是,当我关闭worker4(Tomcat)时,JK Status Managerhttp://apachehost/jkstatus)的Web界面仍然显示worker4处于ACTOK/IDLE状态,这是没有意义的,因为worker4不再可用。而且我在mod-jk.log中没有看到任何错误消息。


但是,当我将worker.properties更改为仅具有不可用的worker4并再次尝试访问时,该页面将显示ERR Satte:


mod-jk.log显示:

[error] ajp_service::jk_ajp_common.c (2626): (worker4) connecting to tomcat failed.
[info] service::jk_lb_worker.c (1400): service failed, worker worker4 is in error state
[info] service::jk_lb_worker.c (1480): All tomcat instances are busy or in error state
[error] service::jk_lb_worker.c (1485): All tomcat instances failed, no more workers left


我的问题是:


根据Tomcat网站上的Service Availablity Rating,它说:“好(空闲):自从上一次平衡器维护以来,此工作程序未收到任何请求。默认情况下,平衡器维护每60秒运行一次。该工作程序应该正常,但由于我们没有“我们无法确定是否需要使用一段时间。在1.2.24版之前,此状态称为N / A。”我从中了解到,mod-jk本身会自动维护连接。那么,如果某位工人失职了,为什么JK Status Manager不通知我?维护不起作用或JK Status Manager网站不能正常工作吗?
除了JK Status Manager,还有其他实时监视工人状态的方法吗?我的意思是,如果一台服务器出现故障,我想立即知道。
ping_mode是否必须显式设置?默认为“ A”吗?日志说:
[warn] jk_map_handle_duplicates::jk_map.c (446): Duplicate key 'worker.worker4.ping_mode' detected - previous value 'A' will be overwritten with 'A'.

最佳答案

1)如果一个Tomcat工作程序失败,则直到对平衡器的下一次检查都没有任何反应。因此,显示OK / Idle。 60秒后,它将进入Err状态。

2)肯定有其他工具,并且该页面仅是信息,而不是表单管理。最简单的方法是设置一个响应HTTP_200状态的servlet。您可以通过外部程序通过URL对象检查其可用性。

3)显示该消息,因为在第7行的配置中有一个错字(worker4而不是worker3):

worker.worker4.ping_mode=A

09-29 21:29