36.2. サーバー検出
サーバー検出はサーバーが接続詳細を以下のものに伝播できるメカニズムです。
- メッセージングクライアント。メッセージングクライアントは、ある時点で稼動しているクラスター内のサーバーを認識せずにクラスターのサーバーに接続できます。
- 他のサーバー。クラスター内のサーバーは、クラスター内の他のすべてのサーバーについて事前に認識せずにお互いのクラスター接続を作成できます。
サーバー検出は User Datagram Protocol (UDP) マルチキャストを使用してサーバー接続設定をブロードキャストします。UDP がネットワークで無効な場合は、これを使用することはできず、クラスターの設定時やメッセージングクライアントの使用時にサーバーを明示的に指定する必要があります。
36.2.1. ブロードキャストグループ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ブロードキャストグループは、サーバーがネットワーク上に接続をブロードキャストする手段です。コネクターはクライアント (または他のサーバー) がサーバーとの接続を確立する方法を定義します。コネクターの詳細については、14章トランスポートの設定 を参照してください。
ブロードキャストグループは一連のコネクターペアを取得し、各コネクターペアにはライブの (オプション) のバックアップサーバーの接続設定が含まれ、ネットワークに接続設定がブロードキャストされます。また、UDP アドレスとポートの設定も定義されます。
ブロードキャストグループは、
JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml で定義されます。1 つの HornetQ サーバーに対して多くのブロードキャストグループが存在することがあります。すべてのブロードキャストグループは、broadcast-groups 要素で定義する必要があります。
JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml のブロードキャストグループの例を見てみましょう。
ブロードキャストグループパラメータの一部はオプションであり、通常デフォルト値が使用されますが、わかりやすくするために上記の例ではすべてが指定されています。それぞれについては以下で説明します。
ブロードキャストグループパラメータ
name- サーバー内の各ブロードキャストグループは、サーバーで一意の名前を持つ必要があります。
local-bind-address- これは、データグラムソケットがバインドされるローカルバインドアドレスです。サーバーに複数のネットワークインターフェースがある場合は、このプロパティを設定してブロードキャストに使用するものを指定します。このプロパティが指定されない場合は、ソケットがワイルドカードアドレスとカーネルにより選択された IP アドレスにバインドされます。
local-bind-port- データグラムソケットがバインドされるローカルポートを指定する場合は、ここで指定できます。通常は、匿名ポートを使用することを示すデフォルト値
-1を使用します。このパラメータは、常にlocal-bind-addressとともに指定されます。 group-address- これは、データをブロードキャストするマルチキャストアドレスであり、範囲が
224.0.0.0〜239.255.255.255のクラス D IP アドレスです。アドレス224.0.0.0は予約されており、使用できません。このパラメータは必須です。 group-port- これはブロードキャストに使用される UDP ポート番号です。このパラメータは必須です。
broadcast-period- これは、連続するブロードキャスト間の時間 (ミリ秒単位) です。このパラメータはオプションであり、デフォルト値は
2000ミリ秒です。 connector-ref- これは、ブロードキャストするコネクターとオプションのバックアップコネクターを指定します (コネクターの詳細については、14章トランスポートの設定 を参照してください)。ブロードキャストするコネクターは
connector-name属性により指定され、ブロードキャストするバックアップコネクターはbackup-connector属性によって指定されます。backup-connector属性はオプションです。