Java 这个项目我应该用什么?集群、网格还是分布式计算?

Java 这个项目我应该用什么?集群、网格还是分布式计算?,java,cluster-computing,distributed-computing,grid-computing,Java,Cluster Computing,Distributed Computing,Grid Computing,我有一个项目,在这个项目中,我将执行用Java编写的相互独立的任务,并在局域网上的计算机上执行这些任务,以高效地解决这些任务。如果任务是线程安全的,它们将作为线程执行,否则将作为新JVM(在原始计算机上确定)执行,结果将发送回原始计算机进行输出 我在谷歌上搜索过这个主题,但一直在混淆网格、集群和分布式计算。在上面描述的场景中,如果有,我应该使用哪一个 需要注意的是,局域网上的计算机运行的是Windows 7,这意味着无论我找到什么解决方案,它都需要在Windows上运行(某些解决方案可能只是*n

我有一个项目,在这个项目中,我将执行用Java编写的相互独立的任务,并在局域网上的计算机上执行这些任务,以高效地解决这些任务。如果任务是线程安全的,它们将作为线程执行,否则将作为新JVM(在原始计算机上确定)执行,结果将发送回原始计算机进行输出

我在谷歌上搜索过这个主题,但一直在混淆网格、集群和分布式计算。在上面描述的场景中,如果有,我应该使用哪一个


需要注意的是,局域网上的计算机运行的是Windows 7,这意味着无论我找到什么解决方案,它都需要在Windows上运行(某些解决方案可能只是*nix)。

我理解这会让你对你提到的三个词感到困惑,但它们无法相互比较,让我解释一下原因

维基:

群集:计算机群集由一组松散或紧密连接的计算机组成,这些计算机协同工作,因此在许多方面可以将它们视为一个单一的系统

网格:网格计算是从多个位置收集计算机资源,以实现一个共同目标

分布式计算:分布式计算是研究分布式系统的计算机科学领域。分布式系统是一种软件系统,其中网络计算机上的组件通过传递消息进行通信并协调其动作

  • 因此,集群基本上是(在网络或软件层)多台计算机作为一个整体
  • 网格(计算)使用集群执行任务
  • 分布式计算是执行任务的一种方式

  • 现在,您需要的是使用Hadoop或Apache Spark来完成此类任务,或者使用内存中的任何数据网格来完成此类任务,但如果您不知道自己到底在做什么,这可能是一种过度使用。

    我理解这会让您对您提到的三个词感到困惑,但它们无法相互比较,让我解释一下原因

    维基:

    群集:计算机群集由一组松散或紧密连接的计算机组成,这些计算机协同工作,因此在许多方面可以将它们视为一个单一的系统

    网格:网格计算是从多个位置收集计算机资源,以实现一个共同目标

    分布式计算:分布式计算是研究分布式系统的计算机科学领域。分布式系统是一种软件系统,其中网络计算机上的组件通过传递消息进行通信并协调其动作

  • 因此,集群基本上是(在网络或软件层)多台计算机作为一个整体
  • 网格(计算)使用集群执行任务
  • 分布式计算是执行任务的一种方式

  • 现在,您需要的是使用Hadoop或Apache Spark执行此类任务,或者使用内存中的任何DataGrid执行此类任务,但如果您不知道自己到底在做什么,这可能会有点过头。

    使用单独的JVM实例运行多个java应用对我来说听起来不符合逻辑。另外,选择一个稳定的操作系统,你可能会依赖它,比如RHEL(或它的家族),除了你需要解释更多之外,取决于你想做什么,你可能会有所不同solutions@user5266804你是说Windows不是一个稳定的操作系统吗?你有什么证据支持这个断言呢?用分离的JVM实例运行多个java应用对我来说听起来不符合逻辑。另外,选择一个稳定的操作系统,你可能会依赖它,比如RHEL(或它的家族),除了你需要解释更多之外,取决于你想做什么,你可能会有所不同solutions@user5266804你是说Windows不是一个稳定的操作系统吗?你有什么证据支持这一主张?谢谢你的细说!我想澄清一下,在我希望从一台机器上执行多个java任务的情况下,为了让这些任务在机器网络上执行,我可以使用本地集群,其中系统可以作为一个整体查看,任务可以在系统上执行和运行,或者是一个分布式系统,任务被发送到单独的机器上,对吗?我还注意到很多(如果不是全部的话)Apache项目都是基于unix的,你知道在Windows上运行的类似项目吗(甚至可能是Java框架之类的)?@TomWilkins这些任务是什么?是计算量大还是数据太多。为什么需要拆分它们?@TomWilkins windows上有一些项目,但这完全取决于您要运行的任务类型。这些任务是相互独立运行的Java计算,有些是线程安全的,有些不是(它们将在自己的JVM中运行)。我可以考虑创建自己的计划表,但这需要我做很多复杂的工作,因此我需要寻找一个现有的解决方案(这个问题是确定要查看哪些解决方案)。您的集群有多大?我可能有一个答案,但我想先了解一下要求:)谢谢你的详细说明!我想澄清一下,在我希望从一台机器上执行多个java任务的情况下,为了让这些任务在机器网络上执行,我可以使用本地集群,其中系统可以作为一个整体查看,任务可以在系统上执行和运行,或者是一个分布式系统,任务被发送到单独的机器上,对吗?我还注意到很多(如果不是全部的话)Apache项目都是基于unix的,你知道在Windows上运行的类似项目吗(甚至可能是Java框架之类的)?@TomWilkins这些任务是什么?是计算量大还是数据太多。你为什么需要拆分它们?@TomWilkins windows上有一些项目,但这完全取决于你要执行的任务类型