4.2. JGroups スタックのカスタマイズ
プロパティーを調整してチューニングし、ネットワーク要件に対応するクラスタートランスポート設定を作成します。
Data Grid は、設定を容易にするためにデフォルトの JGroups スタックを拡張する属性を提供します。他のプロパティーを組み合わせてデフォルトスタックからプロパティーの継承、削除、置き換えを行うことができます。
手順
infinispan.xml
ファイルに新しい JGroups スタック宣言を作成します。<infinispan> <jgroups> <stack name="my-stack"> 1 </stack> </jgroups> </infinispan>
- 1
- "my-stack" という名前のカスタム JGroups スタックを作成します。
extends
属性を追加し、プロパティーを継承する JGroups スタックを指定します。<infinispan> <jgroups> <stack name="my-stack" extends="tcp"> 1 </stack> </jgroups> </infinispan>
- 1
- デフォルトの TCP スタックから継承します。
-
stack.combine
属性を使用して、継承されたスタックに設定されたプロトコルのプロパティーを変更します。 stack.position
属性を使用して、カスタムスタックの場所を定義します。たとえば、以下のようにデフォルトの TCP スタックで Gosssip ルーターと対称暗号化を使用して評価できます。
<jgroups> <stack name="my-stack" extends="tcp"> <TCPGOSSIP initial_hosts="${jgroups.tunnel.gossip_router_hosts:localhost[12001]}" stack.combine="REPLACE" stack.position="MPING" /> 1 <FD_SOCK stack.combine="REMOVE"/> 2 <VERIFY_SUSPECT timeout="2000"/> 3 <SYM_ENCRYPT sym_algorithm="AES" keystore_name="mykeystore.p12" keystore_type="PKCS12" store_password="changeit" key_password="changeit" alias="myKey" stack.combine="INSERT_AFTER" stack.position="VERIFY_SUSPECT" /> 4 </stack> </jgroups>
スタック名を
transport
設定のstack
属性の値として指定します。<infinispan> <jgroups> <stack name="my-stack" extends="tcp"> ... </stack> <cache-container name="default" statistics="true"> <transport cluster="${infinispan.cluster.name}" stack="my-stack" 1 node-name="${infinispan.node.name:}"/> </cache-container> </jgroups> </infinispan>
- 1
- クラスタートランスポートに "my-stack" を使用するように Data Grid を設定します。
Data Grid ログをチェックして、スタックを使用していることを確認します。
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack my-stack
参照資料
- JGroups cluster transport configuration for Data Grid 8.x (Red Hat ナレッジベースの記事)
4.2.1. 継承属性
JGroups スタックを拡張すると、継承属性により、拡張しているスタックでプロトコルやプロパティーを調整できます。
-
stack.position
は、変更するプロトコルを指定します。 stack.combine
は、次の値を使用して JGroups スタックを拡張します。値 説明 COMBINE
プロトコルプロパティーをオーバーライドします。
REPLACE
プロトコルを置き換えます。
INSERT_AFTER
別のプロトコルの後にプロトコルをスタックに追加します。挿入ポイントとして指定するプロトコルには影響しません。
JGroups スタックのプロトコルは、スタック内の場所を基にして相互に影響します。
NAKACK2
がセキュリティーで保護されるように、たとえば、SYM_ENCRYPT
プロトコルまたはASYM_ENCRYPT
プロトコル後にNAKACK2
などのプロトコルを置く必要があります。REMOVE
スタックからプロトコルを削除します。