ここで、異なる JVM (おそらく異なるマシン) で実行されている複数の Java プロセスに作業を分散する必要がある状況があります。
1 から 1000 までのレコードを持つテーブルがあるとします。10 のセットを収集して配布する作業を探しています。1 から 10 のレコードを workerOne に送信するとします。次に、workerThree に 11 ~ 20 を記録します。などなど。言うまでもなく、workerTwo がそれを実行できない限り、workerOne が workerTwo の作業を実行することはありません。
この例は純粋にデータベースに基づいていましたが、ファイル処理、電子メール処理など、あらゆるシステムに拡張できます。
すぐに対応できるのは、Master/Worker アプローチを採用することだと少し感じています。ただし、ここではさまざまな JVM について説明しています。1 つの JVM がダウンしても、もう 1 つの JVM はその作業を続行する必要があります。
今、百万ドルの質問は次のとおりです。これを行うための機能を提供する優れたフレームワーク(生産準備が整っている)はありますか。データベース レコード、ファイル処理、電子メール処理などの特定のニーズの具体的な実装がある場合でも。
Java Parallel Execution Framework を見たことがありますが、それが別の JVM に使用できるかどうか、また一方が停止した場合にもう一方が継続するかどうかはわかりません。ワーカーは複数の JVM 上にある可能性があると思いますが、マスターはどうでしょうか?
詳細情報 1: JDK 1.6 要件のため、Hadoop が問題になります。それは少し多すぎます。
ありがとう、フランクリン