12.2. クラスター検出プロトコル
Data Grid は、ノードがネットワーク上でお互いを自動的に見つけてクラスターを形成できるようにするさまざまなプロトコルをサポートしています。
Data Grid が使用できる 2 種類の検出メカニズムがあります。
- ほとんどのネットワークで機能する汎用検出プロトコルで、外部サービスに依存しません。
 - 
						Data Grid クラスターのトポロジー情報を保存し、取得するために外部サービスに依存する検出プロトコル。
たとえば、DNS_PING プロトコルは DNS サーバーレコードで検出を実行します。 
ホスト型プラットフォームで Data Grid を実行するには、個別のクラウドプロバイダーが課すネットワーク制約に適合する検出メカニズムを使用する必要があります。
12.2.1. PING リンクのコピーリンクがクリップボードにコピーされました!
PING または UDPPING は、UDP プロトコルで動的なマルチキャストを使用する一般的な JGroups 検出メカニズムです。
結合時に、ノードは IP マルチキャストアドレスに PING 要求を送信し、Data Grid クラスターにある他のノードを検出します。各ノードは、コーディネーターノードのアドレスとその独自のアドレスが含まれるパケットで PING リクエストに応答します。C はコーディネーターのアドレスで、A は自分のアドレスです。ノードが PING 要求に応答すると、結合ノードは新しいクラスターのコーディネーターノードになります。
PING 設定の例
<PING num_discovery_runs="3"/>
<PING num_discovery_runs="3"/>
12.2.2. TCPPING リンクのコピーリンクがクリップボードにコピーされました!
TCPPING は、クラスターメンバーの静的アドレスリストを使用する汎用 JGroups 検索メカニズムです。
TCPPING を使用すると、ノードが相互に動的に検出できるようにするのではなく、JGroups スタックの一部として Data Grid クラスター内の各ノードの IP アドレスまたはホスト名を手動で指定します。
TCPPING 設定の例
<TCP bind_port="7800" />
<TCPPING timeout="3000"
         initial_hosts="${jgroups.tcpping.initial_hosts:hostname1[port1],hostname2[port2]}"
         port_range="0"
         num_initial_members="3"/>
<TCP bind_port="7800" />
<TCPPING timeout="3000"
         initial_hosts="${jgroups.tcpping.initial_hosts:hostname1[port1],hostname2[port2]}"
         port_range="0"
         num_initial_members="3"/>
12.2.3. MPING リンクのコピーリンクがクリップボードにコピーされました!
MPING は IP マルチキャストを使用して Data Grid クラスターの初期メンバーシップを検出します。
MPING を使用して TCPPING 検出を TCP スタックに置き換え、初期ホストの静的リストの代わりに、検出にマルチキャストを使用できます。ただし、UDP スタックで MPING を使用することもできます。
MPING 設定の例
<MPING mcast_addr="${jgroups.mcast_addr:239.6.7.8}"
       mcast_port="${jgroups.mcast_port:46655}"
       num_discovery_runs="3"
       ip_ttl="${jgroups.udp.ip_ttl:2}"/>
<MPING mcast_addr="${jgroups.mcast_addr:239.6.7.8}"
       mcast_port="${jgroups.mcast_port:46655}"
       num_discovery_runs="3"
       ip_ttl="${jgroups.udp.ip_ttl:2}"/>
12.2.4. TCPGOSSIP リンクのコピーリンクがクリップボードにコピーされました!
gossip ルーターは、Data Grid クラスターが他のノードのアドレスを取得できるネットワーク上の集中的な場所を提供します。
					以下のように、Gossip ルーターのアドレス (IP:PORT) を Data Grid ノードに挿入します。
				
- 
							このアドレスをシステムプロパティーとして JVM に渡します (例: 
-DGossipRouterAddress="10.10.2.4[12001]")。 - JGroups 設定ファイルのそのシステムプロパティーを参照します。
 
Gossip ルーター設定の例
<TCP bind_port="7800" />
<TCPGOSSIP timeout="3000"
           initial_hosts="${GossipRouterAddress}"
           num_initial_members="3" />
<TCP bind_port="7800" />
<TCPGOSSIP timeout="3000"
           initial_hosts="${GossipRouterAddress}"
           num_initial_members="3" />
12.2.5. JDBC_PING2 リンクのコピーリンクがクリップボードにコピーされました!
JDBC_PING2 は共有データベースを使用して Data Grid クラスターに関する情報を保存します。このプロトコルは、JDBC 接続を使用できるすべてのデータベースをサポートします。
ノードは IP アドレスを共有データベースに書き込むため、ノードに結合してネットワーク上の Data Grid クラスターを検索できます。ノードが Data Grid クラスターから離脱すると、そのノードの IP アドレスが共有データベースから削除されます。
JDBC_PING2 設定例
<JDBC_PING connection_url="jdbc:mysql://localhost:3306/database_name"
           connection_username="user"
           connection_password="password"
           connection_driver="com.mysql.jdbc.Driver"/>
<JDBC_PING connection_url="jdbc:mysql://localhost:3306/database_name"
           connection_username="user"
           connection_password="password"
           connection_driver="com.mysql.jdbc.Driver"/>
適切な JDBC ドライバーをクラスパスに追加して、Data Grid が JDBC_PING2 を使用できるようにします。
12.2.5.1. JDBC_PING2 検出用のサーバーデータソースの使用 リンクのコピーリンクがクリップボードにコピーされました!
マネージドデータソースを Data Grid Server に追加し、それを使用してクラスタートランスポート JDBC_PING2 検出プロトコルにデータベース接続を提供します。
前提条件
- Data Grid Server クラスターをインストールします。
 
手順
- 
								Data Grid Server の 
server/libディレクトリーに JDBC ドライバー JAR をデプロイします。 データベースのデータソースを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 
								検出に 
JDBC_PING2プロトコルを使用する JGroups スタックを作成します。 server:data-source属性でデータソースの名前を指定して、データソースを使用するようにクラスタートランスポートを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
12.2.6. DNS_PING リンクのコピーリンクがクリップボードにコピーされました!
JGroups DNS_PING は DNS サーバーをクエリーし、OKD や Red Hat OpenShift などの Kubernetes 環境で Data Grid クラスターメンバーを検出します。
DNS_PING 設定の例
<dns.DNS_PING dns_query="myservice.myproject.svc.cluster.local" />
<dns.DNS_PING dns_query="myservice.myproject.svc.cluster.local" />
12.2.7. クラウド検出プロトコル リンクのコピーリンクがクリップボードにコピーされました!
Data Grid には、クラウドプロバイダーに固有の検出プロトコル実装を使用するデフォルトの JGroups スタックが含まれています。
| 検出プロトコル | デフォルトのスタックファイル | アーティファクト | バージョン | 
|---|---|---|---|
|   
									  |   
									  |   
									  |   
									  | 
|   
									  |   
									  |   
									  |   
									  | 
|   
									  |   
									  |   
									  |   
									  | 
クラウド検出プロトコルの依存関係の提供
					aws.S3_PING、GOOGLE_PING2、または azure.AZURE_PING のクラウド検出プロトコルを使用するには、依存するライブラリーを Data Grid に提供する必要があります。
				
手順
- アーティファクト JAR ファイルとすべての依存関係をダウンロードします。
 アーティファクト JAR ファイルとすべての依存関係を、Data Grid Server インストールの
$RHDG_HOME/server/libディレクトリーに追加します。詳細は、Downloading artifacts for JGroups cloud discover protocols for Data Grid Server(Red Hat ナレッジベースの記事) を参照してください。
続いて、JGroups スタックファイルの一部として、またはシステムプロパティーを使用して、クラウド検出プロトコルを設定できます。