快速将文件发送到数十台服务器

我们有一个机器集群(大约50,并不断增长)。 每台机器都有一个search索引,需要每天更新多次。 我们现在单独更新每台机器上的索引,但理想情况下,我们可以在一台机器上更新它,然后将新文件同步到群集的其余部分。 我们最初使用rsync来处理这个问题,但是随着机器数量的增长,显然这个解决scheme无法扩展。 我刚刚开始研究多播文件传输。 在这里有一些经验的人可以build议一些地方看看?

这是我的一个面试问题

多播选项:
BitTorrent的
其他使用pub / sub消息的协议。

另一种方法…使用分配树:
发送给N个主机,每个主机又将发送给N个主机; 然后在那棵树上工作 这当然需要一些开发工作,但这可能是更具可扩展性的方法。

这大部分取决于您需要实际需要多less系统,索引大小和您的networking基础设施。

使用共享文件系统可能会更好,尤其是在应用程序使用search索引(即目标端)只读search索引时。 这样,大部分的复杂性都是为你完成的。

试试bittorrent。 它旨在快速将文件分散到多个主机上。 多播会让你的networking工程师痛苦的尖叫:)

UFTP将为你想要做的事情工作。 除了多播之外,它还有一个同步选项,所以如果客户端有更新的版本,客户端只会收到一个文件。

披露:UFTP的作者

我build议看看git。 过去,我曾经使用过这种方法在一台服务器上进行更改,并将其推出或在其他服务器上执行cron作业以将其取消。 解决scheme有相当多的灵活性。