4.4. JGroups スタックのカスタマイズ
プロパティーを調整してチューニングし、ネットワーク要件に対応するクラスタートランスポート設定を作成します。
Data Grid は、設定を容易にするためにデフォルトの JGroups スタックを拡張する属性を提供します。他のプロパティーを組み合わせてデフォルトスタックからプロパティーの継承、削除、置き換えを行うことができます。
手順
-
infinispan.xmlファイルに新しい JGroups スタック宣言を作成します。 -
extends属性を追加し、プロパティーを継承する JGroups スタックを指定します。 -
stack.combine属性を使用して、継承されたスタックに設定されたプロトコルのプロパティーを変更します。 -
stack.position属性を使用して、カスタムスタックの場所を定義します。 スタック名を
transport設定のstack属性の値として指定します。たとえば、以下のようにデフォルトの TCP スタックで Gosssip ルーターと対称暗号化を使用して評価できます。
<infinispan> <jgroups> <!-- Creates a custom JGroups stack named "my-stack". --> <!-- Inherits properties from the default TCP stack. --> <stack name="my-stack" extends="tcp"> <!-- Uses TCPGOSSIP as the discovery mechanism instead of MPING --> <TCPGOSSIP initial_hosts="${jgroups.tunnel.gossip_router_hosts:localhost[12001]}" stack.combine="REPLACE" stack.position="MPING" /> <!-- Removes the FD_SOCK protocol from the stack. --> <FD_SOCK stack.combine="REMOVE"/> <!-- Modifies the timeout value for the VERIFY_SUSPECT protocol. --> <VERIFY_SUSPECT timeout="2000"/> <!-- Adds SYM_ENCRYPT to the stack after VERIFY_SUSPECT. --> <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" /> </stack> <cache-container name="default" statistics="true"> <!-- Uses "my-stack" for cluster transport. --> <transport cluster="${infinispan.cluster.name}" stack="my-stack" node-name="${infinispan.node.name:}"/> </cache-container> </jgroups> </infinispan>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.4.1. 継承属性
JGroups スタックを拡張すると、継承属性により、拡張しているスタックでプロトコルやプロパティーを調整できます。
-
stack.positionは、変更するプロトコルを指定します。 stack.combineは、次の値を使用して JGroups スタックを拡張します。値 説明 COMBINEプロトコルプロパティーをオーバーライドします。
REPLACEプロトコルを置き換えます。
INSERT_AFTER別のプロトコルの後にプロトコルをスタックに追加します。挿入ポイントとして指定するプロトコルには影響しません。
JGroups スタックのプロトコルは、スタック内の場所を基にして相互に影響します。
NAKACK2がセキュリティーで保護されるように、たとえば、SYM_ENCRYPTプロトコルまたはASYM_ENCRYPTプロトコル後にNAKACK2などのプロトコルを置く必要があります。INSERT_BEFORE別のプロトコルの前にプロトコルをスタックに挿入します。挿入ポイントとして指定するプロトコルに影響します。
REMOVEスタックからプロトコルを削除します。