HornetQ クラスターにおける高可用性 MDB
Issue
-
異なる 2 つのサイトで異なる複数のマシン上の Java プログラム間でメッセージを送信する必要があります。ここでは、相手のサイトにメッセージを送るマシンをマシン A とします。そのサイトでは、マシン C またはマシン D のいずれかがメッセージを消費します。メッセージを消費しているマシンを A が知る必要がなく、A がメッセージを送信し、メッセージが新しい宛先に届くことが分かるようにしたいです。
-
プロデューサー (A) がメッセージを送信し、コンシューマー (C または D) が同じキューを調べます。(A) がローカルサーバーのキューにメッセージを投げると、そのメッセージは自動的にその時にキューを待つコンシューマーを持つサーバーに向かいます。ここでは、C をコンシューマーとします。C がメッセージを消費したらオフラインになり、D がクラスターのキューに対してコンシューマー接続を形成します。次に、キューに残っているメッセージと、A でその後に生成されるメッセージが D によって消費されます。C および D は、クラスター外で調整され、指定された時間にコンシューマー接続が開いているのはどちらのマシンであるかを決定します。
-
以下動作は、HornetQ から予期される動作ですか?
- この時点でコンシューマーがあるサーバーで、キューに生成されたサーバーのキューからメッセージを自動的に移動します。
- コンシューマーの 1 つが接続を閉じたあと、別のコンシューマーが接続し、新しいコンシューマーに残りのメッセージを移行します。
- メッセージは 1 度だけ配信されることを保証します。つまり、生成されたそれぞれのメッセージは最終的に 1 度だけ、1 つのコンシューマーによってのみ消費されます。
Environment
- JBoss Enterprise Application Platform
- 5.1.2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.