S3(Amazonのストレージサービス)にファイルがあるとします。このファイルをs3からダウンロードして追加的な変更を加える10台のマシンがあります。 1時間ごとにs3のファイルを更新しなければなりません。これはマシンのすべてのファイルと元のファイルの結合でなければなりません。このプロセスは続行されます(更新されたファイルを10台のマシンでダウンロードして操作します)分散システムでファイルを同期する良い方法は何ですか?
どのようにこのソリューションを設計しますか?
S3(Amazonのストレージサービス)にファイルがあるとします。このファイルをs3からダウンロードして追加的な変更を加える10台のマシンがあります。 1時間ごとにs3のファイルを更新しなければなりません。これはマシンのすべてのファイルと元のファイルの結合でなければなりません。このプロセスは続行されます(更新されたファイルを10台のマシンでダウンロードして操作します)分散システムでファイルを同期する良い方法は何ですか?
どのようにこのソリューションを設計しますか?
一時ファイルの更新にS3を使用することもできます。
S3のサブバケットを使用して、一時ファイルを1時間ごとに格納し、10台のマシンのIPアドレスまたはサーバー名でファイルに名前を付けます。 S3で
:限り10個の追加ファイルがあるとして時間後
/bucket-name/master_file
/bucket-name/timestamp/server1_file
/bucket-name/timestamp/server2_file
...
/bucket-name/timestamp/server10_file
、(使用しているどんなプログラミング言語を使用して、いくつかの読み取りファイル方式を使用して)ローカルにダウンロードし、連結またはあなたがする必要があるものは何でももう一度master_fileを実行して保存してください。
時間単位で実行するには、cronジョブなどを使用します。 10台のマシンのそれぞれに1つのcronエントリが必要な作業を行い、1つのcronジョブがマスターマシン上でファイルを結合します。サブバケットは、必要に応じて削除することも、最初に追加することもできません(監視とログ用のプラスとマイナスの値)。
私はSQSでやっていると思っていました。これは良いアプローチのようにも見えます。これは1時間後に各システムで更新されたファイルが必要なので、まだ私の場合の同期の問題があるかもしれません... – vkris