第26章 JGroups の設定

JGroups は、Red Hat JBoss Data Grid インスタンスに接続するために使用される基礎となるグループ通信ライブラリーです。JBoss Data Grid でサポートされる JGroups プロトコルの完全なリストについては、「サポート対象 JGroups プロトコル」を参照してください。

26.1. Red Hat JBoss Data Grid インターフェースバインディングの設定 (リモートクライアントサーバーモード)

26.1.1. インターフェース

Red Hat JBoss Data Grid では、ユーザーは特定の (不明の) IP アドレスではなくインターフェースタイプを指定することができます。
  • link-local: 169.x.x.x または 254.x.x.x アドレスを使用します。これは、1 つのボックス内のトラフィックに適しています。
    <interfaces>
        <interface name="link-local">
            <link-local-address/>
        </interface>
        <!-- Additional configuration elements here -->
    </interfaces>
  • site-local: たとえば 192.168.x.x などのプライベート IP アドレスを使用します。これにより、GoGrid や同様のプロバイダーから追加の帯域幅についてチャージされることを避けられます。
    <interfaces>
        <interface name="site-local">
            <site-local-address/>
        </interface>
        <!-- Additional configuration elements here -->
    </interfaces>
  • global: パブリック IP アドレスを選択します。これは、レプリケーショントラフィックの場合は避ける必要があります。
    <interfaces>
        <interface name="global">
            <any-address/>
        </interface>
        <!-- Additional configuration elements here -->
    </interfaces>
  • non-loopback: 127.x.x.x アドレスではないアクティブなインターフェースにある最初のアドレスを使用します。
    <interfaces>
        <interface name="non-loopback">
            <not>
    	    <loopback />
    	</not>
        </interface>
    </interfaces>

26.1.2. ソケットのバインディグ

ソケットのバインディングにより、インターフェースとポートの名前付きの組み合わせが提供されます。ソケットは、個別にまたはソケットのバインディンググループを使用するかのいずれかにより、インターフェースにバインドできます。

26.1.2.1. 単一のソケットをバインドする例

以下は、JGroups インターフェースのソケットバインディングを使用し、socket-binding 要素を用いて個別のソケットをバインドする例を表しています。

例26.1 ソケットバインディング (Socket Binding)

<socket-binding name="jgroups-udp" <!-- Additional configuration elements here --> interface="site-local"/>

26.1.2.2. ソケットのグループをバインドする例

以下は、JGroups インターフェースのソケットバインディングを使用し、socket-binding-group 要素を用いてグループをバインドする例を表しています。

例26.2 グループのバインド

<socket-binding-group name="ha-sockets" default-interface="global"> 
	<!-- Additional configuration elements here -->
	<socket-binding name="jgroups-tcp" port="7600"/>
	<socket-binding name="jgroups-tcp-fd" port="57600"/>
	<!-- Additional configuration elements here -->
</socket-binding-group>
この例の 2 つのサンプルのソケットバインディングは、同じ default-interface (global) にバインドされます。そのため、インターフェース属性を指定する必要はありません。

26.1.3. JGroups ソケットバインディングの設定

JGroups サブシステムで設定されるそれぞれの JGroups スタックでは、特定のソケットバインディングを使用します。以下のようにソケットバインディングをセットアップします。

例26.3 JGroups ソケットバインディング設定

<subsystem xmlns="urn:jboss:domain:jgroups:1.2" default-stack="udp">
    <stack name="udp">
        <transport type="UDP" socket-binding="jgroups-udp">
            <!-- Additional configuration elements here -->
        </transport>
        <!-- rest of protocols -->
    </stack>
</subsystem>

重要

UDP を JGroups トランスポートとして使用する場合、ソケットバインディングは、通常の (ユニキャスト) ポート、マルチキャストアドレス、およびマルチキャストポートを指定する必要があります。