中央データベースに、常に追加されるテーブルがあります。これらの追加を数分ごとにバッチ処理して、多数の「スレーブ」サーバーに送信したいと考えています。次に、これらのサーバーはそのデータを処理してから破棄します (分散型倉庫を考えてください)。各「スレーブ」サーバーには異なるデータのサブセットが必要であり、そのために使用できる自然なパーティション分割キーがあります。
基本的に、私はこれが最終的に一貫している必要があります.バッチが配信される準備ができている瞬間に「スレーブ」がダウンしていたとしても、データのすべてのバッチは最終的にすべての「スレーブ」サーバーに配信されます(信頼性)。バッチが配信される順序は気にしません。
私が検討した可能な解決策、
- 各サーバーでテーブル全体を複製する必要があるため、MySQL 複製は私の要件に適合しません。
- ETL および ESB 製品はこれにはあまりにも肥大化しています。私はデータ処理を行っていません。
- 普通の JMS を使用できますが、もっと単純なものを探しています
- JGroups は興味深いものですが、グループから脱退したメンバーは、再参加するとメッセージを受け取りません。
- サーバー間でファイルとackファイルをプッシュする:できますが、フレームワークを知らないので、自分で作成する必要があります。
注:この質問は、信頼性と耐久性を備えた中央サーバーからN個の他のサーバーにデータを移動する方法に関するものです。それを作成または摂取する方法ではありません。
(耐久性要件を追加するために 8 月 24 日に編集されました)