基本的に、ワーカー ノード間でタスクを分散する 1 つのマスター ノードがあります。ワーカーの数は変更される可能性があります。つまり、サーバー側でワーカーをハードコーディングできませんでした。マスターはタスクをキューに送信し、ワーカーの 1 つがこのタスクを取得して処理し、結果を返します。最も重要な側面は、低レイテンシです。ワーカー ノードでの通常の処理時間は約 100 ~ 300 ミリ秒です。これは、メッセージング システムが処理時間に大幅な遅延を追加しないことを意味します。
現在、リクエストとレスポンスの JMS パターンを調べています。これは、マスターがタスクを共有キューに送信し、ワーカーがキューからタスクを取得して、マスター ノードがリッスンする別のキューに結果を送信することを意味します。マスターは応答を要求と関連付けます。
残念ながら、JMS はシステムに遅延をもたらす可能性がありますが、これは受け入れられません。おそらく、他のソリューションを検討する必要がありますか?RabbitMQ、JGroups、ZooKeeper などですか?
ここで JMS が適している場合、最速の JMS ブローカーをお勧めできますか? 現在、私はActiveMQを見ています
ソリューションのもう 1 つの要件は、クラウドで動作できることです。