0

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

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

问题:
是否有一个集群管理系统可以提供一个平台来自动化这些测试?

要求:

  • 它必须能够通过插件进行扩展(最好用Java编写),因此对于一些复杂的定制测试,我们只需要使用业务逻辑开发一个插件即可。
  • 它必须提供一些JMX客户端平台
  • 用于运行测试和查看结果的 GUI/JMX 界面
  • 调度
  • SNMP 监控
4

1 回答 1

1

这不能满足您的所有要求,但您应该看看JGroups

(可靠组播通信工具包)

本质上,它是一个用于创建集群节点​​的 java 库,这些节点可以通过使用多播或单播的各种协议彼此保持同步。它包括一组丰富的构建块,可帮助您构建所需的功能堆栈。您可以使用构建块和/或您自己的自定义状态管理或集群可调用的“业务方法”来实现您对堆栈的自定义。我的意思是,您可以定义一个名为的业务方法int getOpenPortCount(),然后您可以调用它,而不是在单个节点上,而是在集群上。然后,每个附加节点将在本地调用该方法并返回调用结果,从而导致您的集群调用 [有效地] 返回一个值,该值的int[]长度是您的 JGroups 集群上的节点数。

它必须提供一些JMX客户端平台

我不完全确定您的意思是什么,但是没有内置的 JMX-Connector 本身。但是,您可能不需要它,因为您可以直接与单个节点通信,或者使用 JGroups API 通过集群与所有节点通信。

用于运行测试和查看结果的 GUI/JMX 界面

我不认为你会找到这样的东西,但是,因为你基本上会使用纯 Java,你可以使用 JGroups API、JMX API、jUnit(或 TestNG)和基于 eclipse 的测试运行器的组合它提供了一个相当不错的测试工具和可视化 UI。

调度

您可以使用 JGroups TimeSchedulerQuartz或简单地使用ScheduledThreadPoolExecutor来安排要在集群中执行的事件。

SNMP 监控

JGroups 支持 JMX 进行监控,而后者又可以通过JVM 的 SNMP 代理进行桥接。这个 jboss 特定链接将使您了解如何实现它。

于 2013-06-20T13:24:39.657 回答