Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mod#jk1.2.32的JK状态管理器(状态工作者)不';t在web界面上显示工作程序的正确状态_Java_Apache_Tomcat_Load Balancing_Mod Jk - Fatal编程技术网

Java mod#jk1.2.32的JK状态管理器(状态工作者)不';t在web界面上显示工作程序的正确状态

Java mod#jk1.2.32的JK状态管理器(状态工作者)不';t在web界面上显示工作程序的正确状态,java,apache,tomcat,load-balancing,mod-jk,Java,Apache,Tomcat,Load Balancing,Mod Jk,我的应用程序正在使用Apache、mod jk和Tomcat进行负载平衡,这可以很好地配合工作。属性: 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.sock

我的应用程序正在使用Apache、mod jk和Tomcat进行负载平衡,这可以很好地配合工作。属性:

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状态管理器
()的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网站上的信息,它说“OK(空闲):自上次平衡器维护以来,此工作进程未收到任何请求。默认情况下,平衡器维护每60秒运行一次。该工作进程应该正常,但由于我们有一段时间不必使用它,因此无法确定。在版本1.2.24之前,此状态称为N/A。”。据我所知,mod jk本身会自动维护连接。那么,如果其中一名员工停机,为什么JK状态管理器不给我一个警报呢?维护不工作或JK状态管理器网站工作不正常

  • 除了JK状态管理器,还有其他实时监控工人状态的方法吗?我是说如果一台服务器坏了,我想马上知道

  • 是否必须明确设置
    ping_模式
    ?是否默认为“A”?日志说:
    [warn]jk_map_handle_duplicates::jk_map.c(446):检测到重复键'worker.worker4.ping_mode'-以前的值'A'将被'A'覆盖。

1)如果一个Tomcat worker出现故障,则在下次检查平衡器之前不会发生任何事情。因此,显示OK/Idle(正常/怠速)。60秒后,它应变为Err状态

2) 当然还有其他工具,该页面只是一个信息,而不是表单管理。最简单的方法是设置一个servlet,用于响应HTTP_200状态。您可以从外部程序检查其可用性,即使用URL对象

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


“除了JK状态管理器,还有其他方法可以实时监控员工的状态吗?我的意思是,如果一台服务器停机,我想立即知道。”这就是我自己搜索的内容。但云计算找不到比与每个工人交谈更好的方法individually@oak您是否最终看到了工作人员的正确状态?1)60秒后,
OK/IDLE
仍然存在,这就是整个问题所在。3) 谢谢你指出我的打字错误。我的错~
worker.worker4.ping_mode=A