可插拔集群管理系统

时间:2013-06-19 11:45:33

标签: java cluster-computing jmx

问题:
我们有一个服务器集群,运行在Java(Tomcat)上。每个服务器都通过JMX公开大量信息。通过JMX确保群集处于有效状态需要花费大量时间。

在某些情况下,只需检查每个节点中的某个状态即可。在其他情况下,数据分布在节点上,因此需要进行一些逻辑分析。有时需要分析太多数据,无法手动完成。

问题:
是否有集群管理系统可以提供自动化此类测试的平台?

要求:

  • 它必须能够通过插件(最好用Java编写)进行扩展,因此对于一些复杂的自定义测试,我们所需要的只是开发一个带有Business Logic的插件。
  • 必须提供一些JMX客户端平台
  • 用于运行测试和查看结果的GUI / JMX界面
  • 安排调度
  • SNMP监控

1 个答案:

答案 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 TimeSchedulerQuartz计划要在整个群集中执行的事件,或者只使用ScheduledThreadPoolExecutor

SNMP监控

JGroups supports JMX for monitoring,可以通过JVM's SNMP agent进行桥接。这个jboss具体link将让您了解如何实现这一点。