在分布式系统中同步文件的好方法是什么?

时间:2011-06-20 22:41:38

标签: design-patterns amazon-s3 amazon-web-services

假设您在S3(亚马逊的存储服务)中有一个文件。有10台机器从s3下载此文件并进行附加更改。每隔一小时,必须更新s3上的文件,该文件应该是所有机器文件+原始文件的并集。此过程继续(10台机器下载更新的文件并对其进行操作。)

您将如何为此设计解决方案?

1 个答案:

答案 0 :(得分:2)

您也可以使用S3进行临时文件更新。

使用S3上的子存储桶按小时存储临时文件,并按照10台计算机的IP地址或服务器名称命名文件。

在S3:

/bucket-name/master_file
/bucket-name/timestamp/server1_file
/bucket-name/timestamp/server2_file
...
/bucket-name/timestamp/server10_file

只要有10个附加文件一小时后,在本地下载(使用您正在使用的任何编程语言的一些读取文件方法),连接或您需要做的任何事情,并再次存储master_file。

使用cron作业或类似作业每小时执行一次。 10台机器中的每台机器上有一个cron条目可以执行它们需要执行的操作,并在主机上执行一个cron作业来组合文件。然后,您可以删除子桶,如果您想要或者甚至没有它们(在那里用于监视和记录的优缺点)。