私はプロジェクト内のすべてのモジュールを実行している複数のvmsを持っています。ユーザーが作成した各要求は、すべてのモジュールで処理する必要がありますが、一度だけ実行する必要があります。したがって、VM1が要求を受け取った場合、module1は要求を部分的に処理でき、次にVM1またはVM2、またはクラスタ内の他のVMがモジュール2をピックアップして処理できます。等々。クラスタ内で実行されているJavaアプリケーションのロードバランシング
それぞれのVMは容量が限られているので、個々のVM間で作業を割り当てるためにロードバランサを使用したいと考えています。
これを解決するためのロードバランサ(Javaのオープンソース)がありますか、私の要件を解決するためにいくつかの負荷分散アルゴ(ラウンドロビン、重み付けなど)を使用して実装する必要がありますか?
編集1:
各モジュールは、それ自体が独立しているJavaクラスですが、そのstarted.Each Vmはメッセージ・バスを聞いている前に行われなければ、以前のモジュールを必要とします。バスにメッセージが表示されたときに、vmがこれを選択して作業を開始できます。
httpリクエストを処理するWebアプリケーションではありません。これは助けにならないかもしれません。 –
これで、通信やメッセージの受け渡しのモードは何ですか。 – Shailendra
各Vmはメッセージバスを聞いています。バスにメッセージが表示されたときに、vmがこれを選択して作業を開始できます。 –