我有一个由 32 台服务器组成的集群,我需要一个工具来将 Java 服务(打包为 Jar 文件)分发到每台机器并远程启动该服务。该集群由 Linux (Suse 10) 服务器组成,每个刀片有 8 个内核。该应用程序是一个使用 Oracle Coherence 的数据网格。执行此操作的最佳工具是什么?
5 回答
我曾经问过类似的问题,似乎 Java 并行处理框架可能是您需要的:
从网站:
JPPF 是一个用 Java 编写的开源网格计算平台,可以轻松并行运行应用程序,并将其执行速度提高几个数量级。一次编写,一次部署,到处执行!
看看 OpenMOLE:http ://www.openmole.org/
该工具使您能够将计算工作流分配到多个资源:从多核机器到集群和计算网格。
它有很好的文档记录,可以通过 groovy 代码或 GUI 进行控制。
使用 OpenMOLE 在集群上分发 jar 应该很容易。
使用比特洪流。在集群上使用点对点共享方式可以真正提高您的部署速度。
您的服务是否打包为 EJB?JBoss 在集群方面做得相当好。
这取决于您拥有的操作系统以及如何在网络上设置安全性。
如果您可以使用 NFS 或 Windows Share,我建议您将软件放在对所有机器可见的 NFS 驱动器上。这样你就可以从一个副本中运行它们。
如果您有远程外壳或安全远程外壳,您可以编写一个脚本,在每台机器上运行相同的命令,例如在所有机器上启动,或在所有机器上停止。
如果你有 Windows,你可能想在每台机器上设置一个服务。如果你有 linux,你可能想为每台机器添加一个启动/关闭脚本。
当您拥有多台机器时,拥有一个工具来监控您的所有服务是否正在运行、在一个地方收集日志和错误和/或允许您从 GUI 启动/停止它们可能会很有用。有很多工具可以做到这一点,不确定现在哪个是最好的。