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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
