既存のJNDI HornetQサービスをHAにする手順は?


177

TL; DR

HornetQセットアップでHA-JNDIサービスを構成する手順は何ですか?ドキュメントは少しバラバラだと思います。私はここでドキュメントを読みましたが、詳細に説明しているようには見えません。

長いバージョン:

したがって、JNDIとともにHornetQ JMSがセットアップされています。それぞれにJNDIサービスを備えたHornetQ JMSマスターインスタンスを実行する5つのサーバーがあるとします。これらの5つのサーバーのそれぞれで、他のいくつかのHornetQマスター用に実行されているスレーブもあります。

説明する:

Server A - HornetQa_master, JNDI, HornetQb_slave
Server B - HornetQb_master, JNDI, HornetQc_slave
Server C - HornetQc_master, JNDI, HornetQd_slave
Server D - HornetQd_master, JNDI, HornetQe_slave
Server E - HornetQe_master, JNDI, HornetQa_slave

これらの各HornetQサーバーは、さまざまなバックエンドのニーズに対するミドルウェアとして機能します。つまり、5つのサーバー、5つのHornetQマスターインスタンス、5つのHornetQスレーブインスタンス、および5つのJNDIサーバーです。ただし、この設定の問題は、サーバーホスト(プロセスだけでなく、ホスト自体)がダウンした場合、理想的には、サービスはAのHornetQスレーブをホストするサーバーEで実行されているHornetQにフォールバックすることです。ただし、HornetQマスターとして再開するには、HornetQa_slaveがサーバーAで実行されているJNDIプロセスと通信する必要があります(私はメッセージを複製すると想定しています)。ホストA自体がダウンしているため、Eで実行されているHornetQa_slaveはAのJNDIと通信する方法がないため、マスタープロセスとして再開できません。

JNDIサービスの可用性が高かった場合、スレーブHornetQプロセスは期待どおりにマスターとして再開できます。誰かが親切にドキュメントを指摘したり、既存のセットアップをHA-JNDIに変換する方法を簡単な手順で説明したりできますか?それだけの価値があるので、私は複数のソースを読みましたが、HA-JNDIの構成を開始する方法についてあまり詳しく説明していないようです。現在のセットアップに関する詳細情報が必要な場合はお知らせください。


8
クライアントはどこで実行されていますか?それらは同じASインスタンスで実行されていますか、それとも別のインスタンス/ JVMから実行されていますか?
jjhavokk 2016年

3
@jjhavokk彼らは別のJVMで実行されます
gravetii

4
HornetQを高可用性モード(アクティブ-パッシブレプリケーション)で有効にできますか?これをサーバーの動的検出と組み合わせると、信頼性の高いフォールバックが必要になります。参照docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/...docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/...
diginoise

4
実行しているjbossのバージョンは何ですか?
eisは

5
これは本当に古いと思いますが、答えを見つけたのでしょうか。これで、HAがメッセージを伝播するために<forward-when-no-consumers> true </ forward-when-no-consumers>を必要とするが、マスターへのフェールバックが機能しないことをご存じでしょう。フェールバックが機能するweblogicとwebsphereで同じ構成を使用しましたが、jbossでは機能しません。適切なフェイルバックが機能するように、マスターが失われたメッセージを同期および更新できるように設定するものはありますか?
user1442498 2017年

回答:


1

説明したアーキテクチャでは、スレーブをマスターとして再構成する必要があり、それによって特定の機能停止が発生するため、私には難しいように見えます。

HornetQ HAはライブバックアップペアを介して提供され、負荷分散はクラスターを介して提供されます。

HAとロードバランシングの両方が必要な場合は、クラスター化された2つのライブバックアップペアが必要です。

ソース:https : //developer.jboss.org/thread/254232

ホスト名ではなく仮想IPアドレスを使用してマスターを参照できます。これにより、マスターがダウンした場合に、スレーブの1つをマスターとして再構成し、仮想IPを開始して、残りを再構成する必要がなくなります。奴隷の。(マスターがダウンしている場合でもHAを維持するには、2つのスレーブが必要です。スレーブの1つをマスターとして再起動しても、1つは実行されます)。

同じ結果を得る別の方法は、マスターに固有のDNSホスト名を使用することです。これは、1つのホストがダウンした場合に別のIPを指すように再構成できます。DNSはキャッシュされるため、このエントリは「hosts」ファイルにあるほうが適切です。

HAドメインあたり3つのホストでハードウェアが多すぎる場合は、仮想サーバーを使用すると、ハードウェアを追加購入することなく、これを簡単に実現できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.