複雑なファイル転送の解決策を考え出す必要があります。私はこれを行うことができますが、私がやりたいことの 90% を既に実行しているオープンソース ソリューションを誰かが知っているかどうかを知りたいです。
要件は非常に奇妙です。彼らを理解しようとしないでください、彼らは政治、領土、官僚機構の地獄のような混合物です.
私は 2 つのサーバーを制御しており、それぞれがアップストリーム ソースのグループからファイルを取得しています。私は情報源に対してある程度の影響力を持っています (ただし、完全に制御できるわけではありません)。私の 2 つのサーバーはこれらのファイルを収集し、新しいファイルを処理ディレクトリにリンクします (これは少し単純化されています)。
私の 2 つのサーバー (A と B としましょう) は、これらのファイルをダウンストリームのサーバーのペアに送信する必要があります。私はダウンストリーム サーバーをほとんど制御できません。それらを X と Y と呼びましょう。
- ファイルは、ファイル名によって一意に識別されます。ファイル名が同じなら同じファイルです。
- 無限にファイルが流れる可能性があります。それらの名前にはタイムスタンプが含まれています。
- 通常、サーバー A と B (私のサーバー) は同じファイルを取得します。ファイルがサーバー A に表示される場合、98% の確率で同じファイル名でサーバー B に表示されます。
- A と B は、受信したファイルを sftp などを使用して X と Y にプッシュする必要があります。X と Y にソフトウェアをインストールすることは許可されていません。制限付きのアカウントであっても、シェル アカウントは許可されていません。今では奇妙になります:
- A および/または B によって受信された各ファイルは、A または B によって (両方ではなく) X または Y のいずれかに 1 回コピーされる必要がありますが、両方にはコピーされません。
- 私から上流のソースには、同じファイルの重複したコピーが含まれている可能性があります (これは、A/B サーバーでは問題ではありません。各サーバーは、プルしたものを追跡できます)。
- A、B、X、または Y の障害は許容する必要があります (そのパートナーがまだアクティブである限り)。==> A/B ==> X/Y からのファイルの流れを止めてはいけません。
このすべてについて私が得たのは、私の地元の部門が安全のためにファイルを A と B の間で複製することを望んでいるという点ですが、下流の受信者 (別の部門) はフェイルオーバーのために X と Y が必要だと主張しています...しかし各ファイルは A または B にのみコピーする必要があり、両方にコピーすることはできません (またはまれな状況でのみ)。下流の人々が重複ファイルを管理するだけなら、それは簡単です。ファイル名が重複をすばやく特定することを考えると、それは本当に難しいことではありません。まあ、彼らはそれをしたくありません。X または Y が失敗すると、一部のファイルが失われる可能性があります。図に行きます。
だから私はこれらすべてを行うアルゴリズムに取り組んでおり、ある程度の進歩を遂げましたが、競合状態、ノードの障害、ノードの再起動、ノードのほとんど独立した性質に対処するのは少し複雑になるでしょう。 A と B など。1 か月の努力の後で、友人が「なぜ SuperOpenSourceSolution を使用しなかったのか? 1 日で機能するようになったはずだ!」と言ったら、少し動揺します。
それで... すぐに使える(またはほとんどそうである)ソリューションを知っている人はいますか?一般的な MFT ソリューションがあることは知っていますが、この種のことができるとは聞いたことがありません。
rsync を見てきましたが、奇妙なディストリビューションをどのように処理するかわかりません。
ありがとう。