代码之家  ›  专栏  ›  技术社区  ›  John Zwinck

在外联网上分发文件包

  •  2
  • John Zwinck  · 技术社区  · 16 年前

    主机总数大约为100个,目标是可靠、快速、高效地将包的副本从一个主机复制到所有其他主机上。一个重要的问题是,一些主机被分组在单个快速局域网上,在这种情况下,网络I/O应该从一个组到下一个组进行一次,然后在所有对等机之间的每个组内进行。这与严格的中央服务器系统不同,在中央服务器系统中,多个主机可以通过慢速链接各自获取相同的包,而不是通过慢速链接一次,然后在彼此之间快速获取。

    每隔几天就会产生一个新的bundle,偶尔会删除旧的bundle(但这个问题可以单独解决)。

    有问题的机器碰巧运行最新的linuxe,但额外的好处是解决方案至少有点跨平台(在这种情况下,捆绑包可能因平台而异,但可能可以使用相同的机制)。

    3 回复  |  直到 16 年前
        1
  •  0
  •   Adam Shiemke    16 年前

    我认为所有这些问题都已经通过对p2p网络的现代研究得到了解决,并且被很好地包装成了很好的形式。一点脚本和BitTorrent应该可以解决这些问题。torrent客户端适用于所有现代操作系统,然后在每台计算机上都有一个脚本,用于检查新torrent文件的位置,启动DL,然后在DL完成后删除旧包。

        2
  •  0
  •   compie Artelius    16 年前

        3
  •  0
  •   user257111 user257111    16 年前

    我建议您使用compie的rysnc思想来复制文件,在这种情况下,您可以使用自己选择的脚本语言。

    在传播系统上,您将需要一个脚本,其中包含主机的某种形式的表示,以及它们之间的矩阵(以速度加权)。然后需要根据这些信息计算最小生成树。然后,您可以向要传播的系统发送消息,详细说明要获取的MST和bundle,从而开始传输脚本/守护进程。然后该主机通过最快的链接与主机联系。。。

    更新网络时,需要根据最新信息更新矩阵。

    请参见: Prim's Algorithm .