20.13.4. サーバー側の負荷分散
重要なクラスタートポロジーは次のとおりです。
- 対称クラスター: 対称クラスターでは、各クラスターノードがクラスターにある他のすべてのノードへ直接接続されます。対称クラスターを作成するには、
max-hops
属性を 1 に設定して、クラスターのすべてのノードがクラスター接続を定義するようにします。注記
対称クラスターでは、各ノードは他のすべてのノード上に存在するキューと、それらのコンシューマーを認識します。そのため、各ノードはメッセージの負荷を分散する方法と再配布する方法を決定できます。
20.13.4.1. クラスター接続の設定
クラスター接続はサーバー設定ファイル (
クラスター接続を形成するためにクラスターのノード間で接続を作成するとき、HornetQ はサーバー設定ファイル (
standalone.xml
および domain.xml
) の cluster-connection
要素に設定されます。HornetQ サーバーごとに 0 個以上のクラスター接続を定義できます。
<cluster-connections> <cluster-connection name="my-cluster"> <address>jms</address> <connector-ref>netty-connector</connector-ref> <check-period>1000</check-period> <connection-ttl>5000</connection-ttl> <min-large-message-size>50000</min-large-message-size> <call-timeout>5000</call-timeout> <retry-interval>500</retry-interval> <retry-interval-multiplier>1.0</retry-interval-multiplier> <max-retry-interval>5000</max-retry-interval> <reconnect-attempts>-1</reconnect-attempts> <use-duplicate-detection>true</use-duplicate-detection> <forward-when-no-consumers>false</forward-when-no-consumers> <max-hops>1</max-hops> <confirmation-window-size>32000</confirmation-window-size> <call-failover-timeout>30000</call-failover-timeout> <notification-interval>1000</notification-interval> <notification-attempts>2</notification-attempts> <discovery-group-ref discovery-group-name="my-discovery-group"/> </cluster-connection> </cluster-connections>下表は設定可能な属性の説明になります。
属性 | 説明 | デフォルト |
---|---|---|
address | 各クラスター接続は、この値で始まるアドレスへ送信されたメッセージへのみ適用されます。アドレスはどの値でもよく、異なるアドレスの値を持つ多くのクラスター接続を維持し、同時にこれらのアドレスのメッセージをサーバーの異なるクラスターへ分散します。ワイルドカードの一致は使用されません。 | |
connector-ref | 適切なクラスタートポロジーを持つようにするため、クラスターの他のノードへ送信されるコネクターを参照する必須の属性です。 | |
check-period | クラスター接続が別のサーバーからの ping を受信しなかったことを検証するために使用される期間 (ミリ秒単位) を表します。 | 30,000 ミリ秒 |
connection-ttl | クラスターの特定のノードからメッセージを受信しなくなった場合に、クラスター接続が有効でなければならない期間を指定します。 | 60,000 ミリ秒 |
min-large-message-size | メッセージのサイズ (バイト単位) がこの値を越える場合、ネットワーク上で他のクラスターメンバーへ送信されるときに複数のセグメントに分割されます。 | 102400 バイト |
call-timeout | 例外が発生する前にクラスター接続上で送信されたパケットが応答を待つ期間 (ミリ秒単位) を指定します。 | 30,000 ミリ秒 |
retry-interval | クラスターのノード間でクラスター接続が作成され、ターゲットノードが起動されていない、または再起動された場合、他のノードからのクラスター接続はターゲットノードが稼働するまで接続を再試行します。retry-interval パラメーターは再試行の間隔 (ミリ秒単位) を定義します。 | 500 ミリ秒 |
retry-interval-multiplier | 再試行が行われるたびに retry-interval をインクリメントするために使用されます。 | 1 |
max-retry-interval | 再試行の最大遅延 (ミリ秒単位) を表します。 | 2000 ミリ秒 |
reconnect-attempts | クラスターでシステムがノードへの接続を試行する回数を定義します。 | -1 (無限) |
use-duplicate-detection | クラスター接続はブリッジを使用してノードをリンクします。ブリッジを設定して転送された各メッセージに複製 ID プロパティーを追加できます。ブリッジのターゲットノードがクラッシュした後にリカバリーすると、メッセージがソースノードから再送信されることがあります。複製検出を有効にすると、複製されたメッセージはフィルターされ、ターゲットノードが受信すると無視されます。 | True |
forward-when-no-consumers | 他のノードにコンシューマーが存在するかどうかに関わらず、クラスターの他のノードの間でメッセージがラウンドロビン方式で配布されるかどうかを決定するパラメーターです。 | False |
max-hops | このサーバーに接続された他の HornetQ サーバーへメッセージを負荷分散する方法を決定します。 | -1 |
confirmation-window-size | 接続しているサーバーから確認を送信するために使用されるウインドウのサイズ (バイト単位)。 | 1048576 |
call-failover-timeout | フェールオーバーの試行中に呼び出しが行われるときに使用されます。 | -1 (タイムアウトなし) |
notification-interval | クラスターにアタッチするときにクラスター接続自体をブロードキャストする頻度 (ミリ秒単位) を決定します。 | 1000 ミリ秒 |
notification-attempts | クラスターに接続するときにクラスター接続自体をブロードキャストする回数を定義します。 | 2 |
discovery-group-ref | 現在のクラスター接続が接続するクラスターにある、他のサーバーのリストを取得するために使用されるディスカバリーグループを決定します。 |
standalone.xml
および domain.xml
) で定義されるクラスターユーザーおよびクラスターパスワードを使用します。
<cluster-user>HORNETQ.CLUSTER.ADMIN.USER</cluster-user> <cluster-password>NEW USER</cluster-password>
警告
リモートクライアントがデフォルト値を使用してサーバーに接続しないようにするため、これらのクレデンシャルのデフォルト値を変更することが重要になります。