11.4. JGroups スタックのカスタマイズ

プロパティーを調整してチューニングし、ネットワーク要件に対応するクラスタートランスポート設定を作成します。

Data Grid は、設定を容易にするためにデフォルトの JGroups スタックを拡張する属性を提供します。他のプロパティーを組み合わせてデフォルトスタックからプロパティーの継承、削除、置き換えを行うことができます。

手順

  1. infinispan.xml ファイルに新しい JGroups スタック宣言を作成します。
  2. extends 属性を追加し、プロパティーを継承する JGroups スタックを指定します。
  3. stack.combine 属性を使用して、継承されたスタックに設定されたプロトコルのプロパティーを変更します。
  4. stack.position 属性を使用して、カスタムスタックの場所を定義します。
  5. スタック名を 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>
  6. Data Grid ログをチェックして、スタックを使用していることを確認します。

    [org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack my-stack

参照資料

11.4.1. 継承属性

JGroups スタックを拡張すると、継承属性により、拡張しているスタックでプロトコルやプロパティーを調整できます。

  • stack.position は、変更するプロトコルを指定します。
  • stack.combine は、次の値を使用して JGroups スタックを拡張します。

    説明

    COMBINE

    プロトコルプロパティーをオーバーライドします。

    REPLACE

    プロトコルを置き換えます。

    INSERT_AFTER

    別のプロトコルの後にプロトコルをスタックに追加します。挿入ポイントとして指定するプロトコルには影響しません。

    JGroups スタックのプロトコルは、スタック内の場所を基にして相互に影響します。NAKACK2 がセキュリティーで保護されるように、たとえば、SYM_ENCRYPT プロトコルまたは ASYM_ENCRYPT プロトコル後に NAKACK2 などのプロトコルを置く必要があります。

    INSERT_BEFORE

    別のプロトコルの前にプロトコルをスタックに挿入します。挿入ポイントとして指定するプロトコルに影響します。

    REMOVE

    スタックからプロトコルを削除します。