2.2. Data Grid Server の設定

Data Grid は、利用可能なコンピューティングリソースをインテリジェントかつ効率的に利用できるようにするスケーラブルなデータレイヤーを提供します。Data Grid Server の展開でこれを実現するために、設定は動的と静的の 2 つのレイヤーに分けられます。

動的設定

動的設定は変更可能であり、実行時にキャッシュを作成し、クラスターにノードを追加したり、クラスターからノードを削除したりすると変更されます。

Data Grid Server クラスターをデプロイした後、Data Grid CLI、Data Grid Console、または Hot Rod および REST エンドポイントを介してキャッシュを作成します。Data Grid Server は、ノード間で分散されるクラスター状態の一部として、これらのキャッシュを永続的に保存します。参加している各ノードは、変更が発生すると Data Grid Server がすべてのノード間で自動的に同期する完全なクラスター状態を受け取ります。

静的設定

静的設定は不変であり、実行時に変更されません。

静的設定は、クラスタートランスポート、認証と暗号化、共有データソースなどの基盤となるメカニズムを設定するときに定義します。

デフォルトでは、Data Grid Server は静的設定に $RHDG_HOME/server/conf/infinispan.xml を使用します。

設定のルート要素は infinispan であり、次の 2 つの基本スキーマを宣言します。

<infinispan
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:infinispan:config:14.0 https://infinispan.org/schemas/infinispan-config-14.0.xsd
                            urn:infinispan:server:14.0 https://infinispan.org/schemas/infinispan-server-14.0.xsd"
        xmlns="urn:infinispan:config:14.0"
        xmlns:server="urn:infinispan:server:14.0">
  • urn:infinispan:config スキーマは、キャッシュコンテナーなどのコア Infinispan 機能の設定を検証します。
  • urn:infinispan:server スキーマは、Data GridServer の設定を検証します。
キャッシュコンテナーの設定

cache-container 要素を使用して、キャッシュライフサイクルを管理するメカニズムを提供する CacheManager インターフェーイスを設定します。

<!-- Creates a cache manager named "default" that exports statistics. -->
<cache-container name="default"
                 statistics="true">
  <!-- Defines cluster transport properties, including the cluster name. -->
  <!-- Uses the default TCP stack for inter-cluster communication. -->
  <transport cluster="${infinispan.cluster.name}"
             stack="${infinispan.cluster.stack:tcp}"
             node-name="${infinispan.node.name:}"/>
</cache-container>

cache-container 要素は、次の設定要素も保持できます。

  • キャッシュマネージャーの security
  • MicroProfile 互換性メトリックの metrics
  • JMX の監視と管理のための jmx
重要

以前のバージョンでは、データグリッド設定で複数の cache-container 要素を定義して、さまざまなエンドポイントでキャッシュコンテナーを公開できました。

Data Grid 8 では、Data Grid CLI とコンソールがクラスターごとに 1 つのキャッシュマネージャーしか処理できないため、複数のキャッシュコンテナーを設定しないでください。ただし、必要に応じて、キャッシュコンテナーの名前をデフォルトよりも環境にとって意味のある名前に変更できます。

キャッシュマネージャーが相互に干渉しないように、マルチテナンシーを実現するには、個別の Data Grid クラスターを使用する必要があります。

サーバー設定

server 要素を使用して、基盤となる Data Grid Server メカニズムを設定します。

<server>
  <interfaces>
    <interface name="public"> 1
      <inet-address value="${infinispan.bind.address:127.0.0.1}"/> 2
    </interface>
  </interfaces>

  <socket-bindings default-interface="public" 3
                   port-offset="${infinispan.socket.binding.port-offset:0}"> 4
    <socket-binding name="default" 5
                    port="${infinispan.bind.port:11222}"/> 6
    <socket-binding name="memcached" port="11221"/> 7
  </socket-bindings>

  <security>
     <security-realms> 8
        <security-realm name="default"> 9
           <server-identities> 10
              <ssl>
                <keystore path="application.keystore" 11
                          keystore-password="password"
                          alias="server"
                          key-password="password"
                          generate-self-signed-certificate-host="localhost"/>
              </ssl>
           </server-identities>
           <properties-realm groups-attribute="Roles"> 12
              <user-properties path="users.properties" 13
                               relative-to="infinispan.server.config.path"
                               plain-text="true"/> 14
              <group-properties path="groups.properties" 15
                                relative-to="infinispan.server.config.path" />
           </properties-realm>
        </security-realm>
     </security-realms>
  </security>

  <endpoints socket-binding="default" security-realm="default" /> 16

</server>
1
サーバーをネットワーク上で利用できるようにする public という名前のインターフェイスを作成します。
2
パブリックインターフェイスに 127.0.0.1 ループバックアドレスを使用します。
3
パブリックインターフェイスを、Data Grid Server エンドポイントが着信クライアント接続をリッスンするネットワークポートにバインドします。
4
ネットワークポートのオフセットを 0 に指定します。
5
default という名前のソケットバインディングを作成します。
6
ソケットバインディング用の ポート 11222 を指定します。
7
ポート 11221 に Memcached コネクターのソケットバインディングを作成します。
8
エンドポイントをネットワーク侵入から保護するセキュリティーレルムを定義します。
9
default という名前のセキュリティーレルムを作成します。
10
ID 検証用に SSL/TLS キーストアを設定します。
11
サーバー証明書を含むキーストアを指定します。
12
プロパティーファイルを使用して、ユーザーをロールにマップするユーザーとグループを定義するように、デフォルトのセキュリティーレルムを設定します。
13
データグリッドユーザーを含むプロパティーファイルに名前を付けます。
14
users.properties ファイルの内容をプレーンテキストとして保存することを指定します。
15
データグリッドユーザーをロールにマップするプロパティーファイルに名前を付けます。
16
Hot Rod および REST コネクターでエンドポイントを設定します。

この例では、Data Grid 8.2 のデフォルトである暗黙の hotrod-connectorrest-connector 要素を示しています。
8.0 および 8.1 の Data Grid Server 設定は、明示的に宣言された Hot Rod および REST コネクターを使用します。