我的应用程序使用Apache
,mod-jk
和Tomcat
进行负载平衡,此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 Manager
(http://apachehost/jkstatus)的Web界面仍然显示worker4
处于ACT
和OK/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