これが私の要件です。
クラスター内に多数のマシンがあります(たとえば、約4-A、B、C、D)。
Aの仕事は、更新についてデータベースをポーリングすることです(したがって、Aは注文テーブルで新しい注文を探している可能性があります)。
Aが更新を受信すると、B、C、Dのどちらが比較的自由であるかを確認します(負荷分散は私が推測する正しい言葉です)。次に、B、C、Dのいずれかを注文して、注文の処理を開始します。B / C/Dで処理されている注文を追跡します。
B、C、Dはスレーブのようなものです。注文処理が完了すると、Aから更新を受け取り、Aに通知するだけです。Aがダウンした場合(ネットワークの問題などにより)、B、C、Dのいずれかがマスターになり、Aの役割を果たします。実行中のジョブに関するAのメタデータも、バックアップノードEに定期的にバックアップされます。 B / C / Dが新しいマスターになり、Eからメタデータを読み取ります。
少しハドゥープのように聞こえますが、注文処理はマップリデュースモデルに適合しないため、A、B、C、D間の調整に役立つZooKeeperなどの他のフレームワークを活用する方法を探しています。
ZooKeeperはここに適していますか?