2011-06-20 53 views
0

假設你在S3中有一個文件(亞馬遜的存儲服務)。有10臺機器從s3下載該文件並進行附加更改。每隔一小時,s3上的文件必須更新,這應該是所有機器文件+原始文件的聯合。這個過程繼續下去(10臺機器下載更新的文件並對其進行操作。)什麼是同步分佈式系統中的文件的好方法?

您將如何爲此設計解決方案?

回答

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作業來合併文件。如果你想要或者甚至沒有它們,你可以刪除子桶(在那裏進行監視和記錄)。

+0

我正在考慮用SQS來做。這看起來也是一個很好的方法。這可能仍然有我的情況同步問題,因爲我需要在一個小時後在每個系統中更新的文件... – vkris

相關問題