2013-09-22 80 views
0

假设我需要通过HTTP从远程主机下载很多小文件,并且我有一个要下载的URL列表。假设远程主机只允许K连接到我的本地网络。我的本地网络有M电脑,我想平均分配文件。我所有的电脑都运行Linux。现在我想知道如何组织下载。如何用几台Linux电脑下载很多远程文件?

现在我假设一台计算机足以处理所有K连接并将所有这些文件存储在其本地文件系统中。因此,我将分配一台计算机将文件“下载”到以M本地主机命名的M文件夹中。本地主机将文件从这些文件夹复制(移动)到其文件系统。是否有意义 ?实现它的最简单方法是什么?

回答

1

您的方法很好,但有一个假设,所有文件的大小相同,所有计算机的性能相同。 如果一台计算机完成其中的文件,其他计算机仍处于中途会发生什么情况?在这种情况下,尽管您有可用的处理器,但它将闲置。 但是为了实现这个,你将需要分布式计算,这将会变得更加复杂,所以我会说如果这是一次性任务,或者如果总时间不是很大,那么你的方法应该没问题,否则你需要评估分布式方法。

+0

恐怕这不是“一次性任务”。你会推荐什么样的分布式方法? – Michael

+0

那么,我仍然建议只有在必须的时候才采用分布式方法。所以这里是我将如何做到这一点,我会得到一个web服务运行在每台可以下载文件的机器上。现在我将运行一个与所有机器交互的主程序。因此,可以说我有10台机器,每台机器可以一次下载5个文件。现在我将发送5个文件的第一个请求到每台机器,当每台机器回应成功的下载时,我会发送下一个请求。 – Lokesh

+0

我明白了。谢谢。 – Michael

相关问题