问题:
我们有一个服务器集群,运行在Java(Tomcat)上。每个服务器都通过JMX公开大量信息。通过JMX确保群集处于有效状态需要花费大量时间。
在某些情况下,只需检查每个节点中的某个状态即可。在其他情况下,数据分布在节点上,因此需要进行一些逻辑分析。有时需要分析太多数据,无法手动完成。
问题:
是否有集群管理系统可以提供自动化此类测试的平台?
要求:
答案 0 :(得分:1)
这不满足所有您的要求,但您应该看看JGroups
(可靠多播通信工具包)
本质上,它是一个用于创建群集节点的Java库,可以通过使用mutlicast或单播的各种协议保持彼此同步。它包含一组丰富的Building Blocks,可帮助您构建所需的功能堆栈。您可以使用构建块和/或您自己的自定义状态管理或集群可调用的“业务方法”来实现堆栈的自定义。我的意思是,您可以定义一个名为int getOpenPortCount()
的业务方法,然后您可以调用该方法,而不是在单个节点上,而是在群集上。然后,每个附加节点将在本地调用该方法并返回调用结果,从而导致您的集群调用[有效]返回值int[]
,其长度为JGroups集群上的节点数。
必须提供一些JMX客户端平台
我不完全确定你的意思,但是没有内置的JMX-Connector。但是,您可能不需要它,因为您可以直接与单个节点通信,或者使用JGroups API通过集群与所有节点通信。
用于运行测试和查看结果的GUI / JMX界面
我认为你不会发现这样的东西,但是,既然你基本上使用纯Java,你可以使用JGroups API,JMX API,jUnit(或TestNG)和基于eclipse的组合test-runner,提供相当不错的测试工具并可视化UI。
计划强>
您可以使用JGroup TimeScheduler,Quartz计划要在整个群集中执行的事件,或者只使用ScheduledThreadPoolExecutor。
SNMP监控
JGroups supports JMX for monitoring,可以通过JVM's SNMP agent进行桥接。这个jboss具体link将让您了解如何实现这一点。