我正在为 JBoss 应用服务器编写一个高度可用的代理,以便在 Solaris Open HA Cluster 上运行。由于我对JBoss AS了解不多,请问有人可以告诉我如何探测应用程序服务器的状态吗?
我想知道应用程序服务器的健康状况,例如它当前是否正在运行。
我正在为 JBoss 应用服务器编写一个高度可用的代理,以便在 Solaris Open HA Cluster 上运行。由于我对JBoss AS了解不多,请问有人可以告诉我如何探测应用程序服务器的状态吗?
我想知道应用程序服务器的健康状况,例如它当前是否正在运行。
开箱即用,JBoss 有一个 JMX 控制台,它提供有关加载到微内核中的模块和正在运行的服务的信息。这个应用程序通常可以在http://hostname:8080/jmx-console 获得,您可以想象它的存在或不存在作为您的 JBoss 服务器是否正在运行的指标。
在 HA 集群的上下文中,您可能在节点前面有一个负载平衡交换机或其他 4-7 层感知设备。如果要检测集群中每个节点的状态,则需要确保使用节点的本地 IP 地址。
当然,在微内核中运行的大多数进程都启用了 JMX……如果您想知道单个进程的状态,就问它!
感谢你的回答。
检查 JBOSS 服务器状态的一种方法是使用 TCP 套接字请求探测 JBOSS 端口(它可以是任何基本服务的端口,例如 JNDI 服务)。如果端口忙,则表示 JBOSS 已启动,否则。
我发现这是一种更可编程的检查状态的方式。:P 特别是在 Solaris OHAC 的情况下,JBOSS 将驻留在全局文件系统上。
如果您对监控 JBoss 的状态以及整个系统/集群的状态感兴趣,我建议您查看Hyperic。
他们有一个出色的 JBoss/Tomcat 监控插件,可以监控集群内的数据库、操作系统和网络连接的状态。客户端监视器是基于 Java 的,虽然我没有在 Solaris 上测试过它,但我相信它可以工作。
与其他系统监控工具相比,Hyperic 的设置相对简单,尤其是在您熟悉 JBoss 和 Java 的情况下。
好消息是 Hyperic 通过 JMX 监控 JBoss 的内部和外部状态。有了这个,您可以根据 JBoss 服务器内的条件和集群的底层基础架构构建复杂的操作。
即,如果满足 X 和 Y 条件,请执行此操作,如果仍然存在问题,请执行此操作...