(コンテナなしで)スタンドアロンで実行され、JVM
を介して他のモジュールと通信するモジュールがありますJMS
。私のモジュールは、あるキューのプロデューサーと別のキューのコンシューマーの両方です。次に、HAの理由とワークロードの理由の両方で、このモジュールをクラスター化する必要があります。エンティティのクラスター化には、おそらくTerracotta+Hibernateを使用します。現在、私のアプリが起動するExecutors.newSingleThreadExecutor()
と、コンシューマーとして機能するスレッド(を介して)が起動します(関連性があり、必要な場合は、実際のコードサンプルを添付できます)。
ここで質問を読んで理解したことは、モジュールをN
別の場所で起動するとJVMs
、N
別のサブスクライバーが作成され、キュー内の各メッセージがサブスクライバーに到着するということN
です。私がやりたいのは、そのうちの1つだけ(現在、どちらが重要ではないかを言いましょう)にそのメッセージを処理させることです。したがって、実際にN
は、一度にメッセージを処理できます。
これはどのように行うことができますか?私は軌道から外れていますか?
ところで、私はOpenMQ
実装として使用していますが、それが適切かどうかはわかりません。
助けてくれてありがとう