【问题标题】:Distributed systems, best framework? [closed]分布式系统,最好的框架? [关闭]
【发布时间】:2010-11-17 07:39:19
【问题描述】:

我正在构建一个遵循该场景的软件程序:

我有很多计算机,并将它们中的每一台都添加到集群中。 集群中的每台计算机都可以将文件添加到分布式表(字典,哈希图,应该足够快)。

所以现在我有了一个地方,每个人都可以看到组/集群包含哪些文件。 现在来自组/集群的计算机请求文件。他可以从分布式表中访问有关该文件的所有信息(在什么计算机上可以找到该文件等...)。

通过某种机制,它应该将文件从 B 点(拥有该文件的计算机)获取到 A 点(请求该文件的计算机)。

基本上它应该进行数据复制。 (但对于非常大的文件)

所以你现在可能想知道,这个 quy 要求什么,这里是:

数据复制应尽可能快。最好的方法是什么?我想到了通量网络之类的东西。

对于遵循场景的软件来说,最好的框架是什么?

我正在寻找一个 JAVA 框架:)。 (我需要跨平台运行)

谢谢!

【问题讨论】:

  • 如果您找到了解决方案,请不要忘记投票并将问题标记为已回答!
  • 试试 Atomix 或 Apache Helix。 Atomix 易于使用且对 API 非常友好。 Helix 更难学习,但对节点生命周期提供了更细粒度的控制。

标签: java algorithm frameworks distributed


【解决方案1】:

我相信您已经发现有很多用于 java 的库可以让您实现这种受干扰的地图。

  • Hazelcast - 新手,非常简单易用,并提供标准 Java 接口的实现,如 ConcurrentMap
  • JGroups - 实际上只是用于群消息的库,但包含一个 DisturbutedHashMap 实现
  • jBoss Cache - 建立在 jGroups 之上,提供了一个更完整的受干扰缓存系统,具有可选的持久性和事务
  • Terracotta - 大而且很受欢迎,商业支持
  • Oracle Coherence - 他们的爸爸,有一个匹配的价格标签

还有更多(相当多),我目前的个人偏好是 Hazelcast,它非常容易上手。我列出的所有缓存框架(我认为)都依赖于能够(至少暂时)能够将整个条目加载到内存中,如果您尝试将大文件的内容放入内存中,这可能是一个问题他们。

在您的情况下,我可能会使用受干扰的地图来存储位置数据,即一些数据来告诉任何其他节点某个特定文件在哪里,然后使用一些超出范围的方法(例如 HTTP)直接转到该节点.

【讨论】:

    【解决方案2】:

    JXTA 是 Sun 的 Java 点对点框架,最有可能在这里使用。

    或者查看Jini,它具有服务租赁、动态发现和独立于协议的客户端/服务器通信的能力。使用 Jini,您可以发布具有特定属性的每个服务(在这种情况下是您的文件名?),或者可以将其与 Javaspaces 一起使用(但是我不确定这里的空格是否合适)

    【讨论】:

    • 是的,它是点对点的,但我不想实现分布式数据结构。
    • 注意你的数据结构有问题,报告机器B有文件,但是机器B宕机了怎么办?
    • 我找到了一个框架,叫做JGroups。听说过吗?
    • 是的。这是一种可靠的多播机制。仅此而已,如果有记忆的话
    • 是的,这是个问题。我正在尝试为此类问题寻找解决方案。 :( 不幸的是,文献是大量的非标准的。
    【解决方案3】:

    【讨论】:

    • 我会仔细看看。这是我的选择。
    • 由于 Hazelcast 具有作为“store()”的持久性功能,它也是一个选项:code.google.com/docreader/… 它非常易于使用!
    【解决方案4】:

    上面有一些分布式hashmap的好答案。

    如果可能的话,为了实际复制文件,我宁愿不复制任何东西,只使用一些共享存储解决方案。如果您必须为每台计算机使用单独的磁盘,那么在每台计算机上设置 FTP 服务器等简单的操作应该可以工作。这不一定是基于 Java 的,但如果你只想要 Java 解决方案,像 Apache MINA 这样的解决方案可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-05
      • 2013-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      相关资源
      最近更新 更多