30.2. JGroups の設定 (ライブラリーモード)
Red Hat JBoss Data Grid がクラスターモードで動作するには、適切な JGroups 設定が必要になります。
例30.5 JGroups XML 設定
まず JBoss Data Grid はクラスパスで
jgroups.xml を検索します。インスタンスがクラスパスに見つからない場合、絶対パス名を探します。
30.2.1. JGroups トランスポートプロトコル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
トランスポートプロトコルは、プロトコルスタックの底辺にあるプロトコルです。トランスポートプロトコルは、ネットワークとのメッセージの送受信を行います。
Red Hat JBoss Data Grid には、UDP と TCP トランスポートプロトコルの両方が同梱されています。
30.2.1.1. UDP トランスポートプロトコル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
UDP は、以下を使用するトランスポートプロトコルです。
- クラスターのすべてのメンバーにメッセージを送信する IP マルチキャスト。
- 単一メンバーに送信されるユニキャストメッセージの UDP データグラム。
UDP トランスポートが開始されると、ユニキャストソケットとマルチキャストソケットが開きます。ユニキャストソケットは、ユニキャストメッセージの送受信に使用され、マルチキャストソケットは、マルチキャストソケットの送受信を行います。チャネルの物理アドレスは、ユニキャストソケットのアドレスおよびポート番号と同じです。
30.2.1.2. TCP トランスポートプロトコル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
TCP/IP は、IP マルチキャストが使用できなくなる状況で使用できる UDP の代替トランスポートです。このような状況には、ルーターが IP マルチキャストパケットを破棄する可能性のある WAN 上の操作が実行される場合などが含まれます。
TCP は、ユニキャストおよびマルチキャストメッセージを送信するために使用されるトランスポートプロトコルです。
- マルチキャストメッセージを送信する場合に、TCP は複数のユニキャストメッセージを送信します。
IP マルチキャストは初期メンバーを検出するために使用することができないため、初期メンバーを見つけるには別のメカニズムを使用する必要があります。
30.2.1.3. TCPPing プロトコルの使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
一部のネットワークでは、TCP のみを使用できます。事前に設定された
default-configs/default-jgroups-tcp.xml には MPING プロトコルが含まれ、検出に UDP マルチキャストが使用されます。UDP マルチキャストが利用できない場合は、MPING プロトコルを別のメカニズムで置き換える必要があります。推奨される別の方法は、TCPPING プロトコルを使用することです。TCPPING 設定には、ノード検出のために接続される IP アドレスの静的なリストが含まれます。
例30.6 JGroups サブシステムでの TCPPING の使用の設定
<TCP bind_port="7800" />
<TCPPING initial_hosts="${jgroups.tcpping.initial_hosts:HostA[7800],HostB[7801]}"
port_range="1" />
<TCP bind_port="7800" />
<TCPPING initial_hosts="${jgroups.tcpping.initial_hosts:HostA[7800],HostB[7801]}"
port_range="1" />
30.2.2. 事前設定された JGroups ファイル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat JBoss Data Grid では、事前設定された複数の JGroups ファイルが
infinispan-embedded.jar にパッケージ化され、デフォルトでクラスパス上にて使用可能です。これらのファイルの 1 つを使用するには、jgroups.xml を使用する代わりにこれらのいずれかのファイルの名前を指定します。
JBoss Data Grid に含まれる JGroups 設定ファイルは、プロジェクトの基礎として使用することを目的としています。通常 JGroups では、ネットワークのパフォーマンスを最適化するのに細かな調整が必要となります。
利用可能な設定は以下のとおりです。
default-configs/default-jgroups-udp.xmldefault-configs/default-jgroups-tcp.xmldefault-configs/default-jgroups-ec2.xml
30.2.2.1. default-jgroups-udp.xml リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
default-configs/default-jgroups-udp.xml ファイルは、Red Hat JBoss Data Grid の事前設定済み JGroups 設定です。default-jgroups-udp.xml 設定には、以下のことが該当します。
- UDP をトランスポートとして使用し、UDP マルチキャストをディスカバリーに使用します。
- 大型のクラスター (9 以上のノード) に適しています。
- インバリデーションまたはレプリケーションモードを使用する場合に適しています。
起動時に特定のシステムプロパティーを JVM に追加すると、一部の設定の挙動を変更することが可能です。変更可能な設定は以下の表のとおりです。
| システムプロパティー | 説明 | デフォルト | 必要性 |
|---|---|---|---|
| jgroups.udp.mcast_addr | マルチキャスト (通信とディスカバリーの両方) に使用する IP アドレス。IP マルチキャストに適した有効なクラス D IPアドレスでなければなりません。 | 228.6.7.8 | いいえ |
| jgroups.udp.mcast_port | マルチキャストに使用するポート。 | 46655 | いいえ |
| jgroups.udp.ip_ttl | IP マルチキャストパケットの TTL (有効期間) を指定します。この値は、パケットがドロップされる前に許可されるネットワークホップの数になります。 | 2 | いいえ |
30.2.2.2. default-jgroups-tcp.xml リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
default-configs/default-jgroups-tcp.xml ファイルは、Red Hat JBoss Data Grid の事前設定済み JGroups 設定です。default-jgroups-tcp.xml 設定には、以下のことが該当します。
- TCP をトランスポートとして使用し、UDP マルチキャストをディスカバリーに使用します。
- 通常は、マルチキャスト UDP がオプションではない場合にのみ使用されます。
- 8 つ以上のノードから構成されるクラスターの場合、TCP は UDP ほどパフォーマンスがよくありません。4 つ以下のノードで構成されるクラスターの場合、UDP と TCP のパフォーマンスはほとんど同じレベルになります。
他の事前設定された JGroups ファイルと同様に、起動時に特定のシステムプロパティーを JVM に追加すると一部の設定の挙動を変更することが可能です。変更可能な設定は以下の表のとおりです。
| システムプロパティー | 説明 | デフォルト | 必要性 |
|---|---|---|---|
| jgroups.tcp.address | TCP トランスポートに使用する IP アドレス | 127.0.0.1 | いいえ |
| jgroups.tcp.port | TCP ソケットに使用するポート。 | 7800 | いいえ |
| jgroups.mping.mcast_addr | マルチキャスト (ディスカバリー) に使用する IP アドレス。IP マルチキャストに適した有効なクラス D IP アドレスでなければなりません。 | 228.6.7.8 | いいえ |
| jgroups.mping.mcast_port | マルチキャストに使用するポート。 | 46655 | いいえ |
| jgroups.udp.ip_ttl | IP マルチキャストパケットの TTL (有効期間) を指定します。この値は、パケットがドロップされる前に許可されるネットワークホップの数になります。 | 2 | いいえ |
30.2.2.3. default-jgroups-ec2.xml リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
default-configs/default-jgroups-ec2.xml ファイルは、Red Hat JBoss Data Grid の事前設定済み JGroups 設定です。default-jgroups-ec2.xml 設定には、以下のことが該当します。
- TCP をトランスポートとして使用し、ディスカバリーに S3_PING を使用します。
- UDP マルチキャストが使用できない Amazon EC2 ノードに適しています。
他の事前設定された JGroups ファイルと同様に、起動時に特定のシステムプロパティーを JVM に追加すると一部の設定の挙動を変更することが可能です。変更可能な設定は以下の表のとおりです。
| システムプロパティー | 説明 | デフォルト | 必要性 |
|---|---|---|---|
| jgroups.tcp.address | TCP トランスポートに使用する IP アドレス。 | 127.0.0.1 | いいえ |
| jgroups.tcp.port | TCP ソケットに使用するポート。 | 7800 | いいえ |
| jgroups.s3.access_key | S3 バケットのアクセスに使用される Amazon S3 アクセスキー。 | はい | |
| jgroups.s3.secret_access_key | S3 バケットのアクセスに使用される Amazon S3 の秘密キー。 | はい | |
| jgroups.s3.bucket | 使用する Amazon S3 バケットの名前。一意の名前で、すでに存在している必要があります。 | はい | |
| jgroups.s3.pre_signed_delete_url | DELETE 操作に使用する事前署名付き URL。 | はい | |
| jgroups.s3.pre_signed_put_url | PUT 操作に使用する事前署名付き URL。 | はい | |
| jgroups.s3.prefix | 設定された場合、S3_PING はそのプレフィックス値で始まる名前のバケットを検索します。 | いいえ |
30.2.2.4. default-jgroups-google.xml リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
default-configs/default-jgroups-google.xml ファイルは Red Hat JBoss Data Grid の事前に定義された JGroups 設定です。default-jgroups-google.xml 設定には以下のことが該当します。
- TCP をトランスポートとして使用し、GOOGLE_PING をディスカバリーに使用します。
- UDP マルチキャストが使用できない Google Compute Engine ノードに適しています。
他の事前に設定された JGroups ファイルと同様に、起動時に特定のシステムプロパティーを JVM に追加すると一部の設定の動作を変更することが可能です。変更可能な設定は以下の表のとおりです。
| システムプロパティー | 説明 | デフォルト | 必要性 |
|---|---|---|---|
| jgroups.tcp.address | TCP トランスポートに使用する IP アドレス | 127.0.0.1 | いいえ |
| jgroups.tcp.port | TCP ソケットに使用するポート。 | 7800 | いいえ |
| jgroups.google.access_key | バケットのアクセスに使用される Google Compute Engine ユーザーのアクセスキー。 | はい | |
| jgroups.google.secret_access_key | バケットのアクセスに使用される Google Compute Engine ユーザーのシークレットアクセスキー。 | はい | |
| jgroups.google.bucket | 使用する Google Compute Engine バケットの名前。一意の名前で、すでに存在している必要があります。 | はい |