29.6. 複数サイトマスターの設定

標準的な Red Hat JBoss Data Grid のデータセンター間のレプリケーション設定には、サイトごとに 1 つのマスターノードが含まれます。マスターノードは、他のサイトのマスターノードと通信するための他のノードのゲートウェイです。
この標準設定は、単純なデータセンター間のレプリケーション設定の場合に機能します。ただし、サイト間のトラフィック量が増えると、単一マスターノードを経由して渡されるトラフィックによりボトルネックが発生する可能性があり、その場合はノード間の通信が遅くなります。
JBoss Data Grid では、複数サイト間のトラフィックを最適化するために、各サイトに対して複数のマスターノードを設定します。

29.6.1. 複数サイトマスターの操作

複数サイトマスターが有効な状態で設定されている場合、各サイトのマスターノードは、グローバルクラスター (複数サイトのメンバーであるノードが含まれる) と共に、ローカルクラスター (つまりローカルサイト) に加わります。
各ノードは、サイトマスターとして機能し、ターゲットサイトとサイトマスターのリストから構成されるルーティングテーブルを維持します。メッセージが到着すると、送信先サイトのランダムなマスターノードが選択されます。次にメッセージがランダムなマスターノードに転送され、そこで送信先ノードに送信されます (ランダムに選択されたノードが送信先ではない場合)。

29.6.2. 複数サイトマスターの設定 (リモートクライアントサーバーモード)

前提条件

Red Hat JBoss Data Grid のリモートクライアントサーバーモード用にデータセンター間レプリケーションを設定します。

手順29.4 リモートクライアントサーバーモードで複数のサイトマスターを設定します。

<relay site="LON">
	<remote-site name="NYC" stack="tcp" cluster="global"/>
	<remote-site name="SFO" stack="tcp" cluster="global"/>
	<property name="relay_multicasts">false</property>
	<property name="max_site_masters">16</property>
	<property name="can_become_site_master">true</property>
</relay>
  1. ターゲット設定の特定

    clustered-xsite.xml のサンプル設定ファイルでターゲットサイトの設定を見つけます。この設定例は、上記の例のようになります。
  2. 最大サイトの設定

    サイト内のマスターノードの最大数を決定するには max_site_masters プロパティーを使用します。すべてのノードをマスターにするために、この値をサイト内のノード数に設定します。
  3. サイトマスターの設定

    ノードをサイトマスターにすることを許可するには、can_become_site_master プロパティーを使用します。このフラグはデフォルトで true に設定されます。このフラグを false に設定することにより、ノードがサイトマスターになることを防ぐことができます。これは、ノードが外部ネットワークに接続されたネットワークインターフェースを持たない状況で必要になります。

29.6.3. 複数サイトマスターの設定 (ライブラリーモード)

Red Hat JBoss Data Grid のライブラリーモードで複数サイトマスターを設定するには、以下を実行します。

手順29.5 複数サイトマスターの設定 (ライブラリーモード)

  1. データセンター間レプリケーションを設定します。

    JBoss Data Grid でデータセンター間レプリケーションを設定します。XML 設定については 「データセンター間レプリケーションを宣言的に設定する」 の手順を使用し、プログラミングによる設定の場合は 「データセンター間レプリケーションをプログラムを用いて設定する」 の手順を使用します。
  2. 設定ファイルの内容を追加します。

    以下のように can_become_site_master および max_site_masters パラメーターを設定に追加します。
    <config> 
        <!-- Additional configuration information here -->
        <relay.RELAY2 site="LON" 
                  config="relay.xml" 
                  relay_multicasts="false"
                  can_become_site_master="true" 
                  max_site_masters="16"/>
    </config>
    すべてのノードをマスターにするために、max_site_masters 値をクラスター内のノード数に設定します。