
弊社にはマシンのクラスターがあります (約 50 台で、増加中です)。各マシンには検索インデックスがあり、1 日に複数回更新する必要があります。現在、各マシンのインデックスを個別に更新していますが、理想的には、1 台のマシンで更新し、新しいファイルをクラスターの残りのマシンに同期できます。当初は rsync を使用してこれを処理していましたが、マシンの数が増えるにつれて、このソリューションでは拡張できないことが明らかになりました。マルチキャスト ファイル転送の調査を始めたところです。この分野で経験のある方で、調べるべき場所を提案できる方はいらっしゃいますか?
答え1
これは私がかつて面接で受けた質問です...
マルチキャスト オプション:
BitTorrent
pub/sub メッセージングを使用するその他のプロトコル。
別のアプローチ... 配布ツリーを使用します。N
台のホストに送信し、各ホストが N 台のホストに送信し、そのようにツリーを下っていきます。もちろん、これにはユーザー側での開発作業が必要になりますが、おそらくよりスケーラブルなアプローチです。
これらは主に、実際に対応する必要があるシステムの数、インデックスのサイズ、およびネットワーク インフラストラクチャによって決まります。
答え2
特に、検索インデックスが、検索インデックスを使用するアプリ (つまり、宛先側) によって読み取り専用になっている場合は、共有ファイルシステムを使用する方がよい場合があります。そうすれば、複雑な処理の多くが自動的に行われます。
答え3
Bittorrent を試してみてください。これは、ファイルを複数のホストに素早く分散するように設計されています。マルチキャストは、ネットワーク エンジニアを悲鳴をあげさせるでしょう :)
答え4
Git を検討することをお勧めします。私は以前、1 つのサーバーに変更を加えてプッシュしたり、他のサーバーで cron ジョブを実行してプルダウンしたりするために Git を使用しました。このソリューションにはかなりの柔軟性があります。