11.2. クラスターでの Red Hat JBoss Data Grid の実行
11.2.1. プロジェクトのコンパイル
$ mvn clean compile dependency:copy-dependencies -DstripVersion
11.2.2. レプリケーションモードでクラスター化されたキャッシュを実行
手順11.1 レプリケーションモードでクラスター化されたキャッシュを実行
- 次のコマンドを用いて最初のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.replication.Node0
- 次のコマンドを用いて、2 つ目のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.replication.Node1
両方のノードで JGroups と JBoss Data Grid が初期化されます。約 15 秒後に、キャッシュエントリーのログメッセージが最初のノードのコンソール上に表示されます。
11.2.3. ディストリビューションモードでクラスター化されたキャッシュを実行
手順11.2 ディストリビューションモードでクラスター化されたキャッシュを実行
- 次のコマンドを用いて最初のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node0
- 次のコマンドを用いて、2 つ目のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node1
- 次のコマンドを用いて、3 つ目のノードを立ち上げます。
$ java -cp target/classes/:target/dependency/* org.infinispan.quickstart.clusteredcache.distribution.Node2
3 つのノードで JGroups と JBoss Data Grid が初期化されます。約 15 秒後に、3 番目のノードによって追加された 10 個のエントリーが、最初のノードと 2 番目のノードに分散されたように表示されます。
11.2.4. クラスターの設定
手順11.3 クラスターの設定
- 新しいクラスターのデフォルト設定を追加します。
- ネットワークの要件に従って、デフォルトのクラスター設定をカスタマイズします。カスタマイズは宣言的 (XML を使用) またはプログラム的に行います。
- レプリケートされたデータグリッドまたは分散されたデータグリッドを設定します。
11.2.4.1. デフォルトクラスター設定の追加
例11.2 デフォルト設定
new ConfigurationBuilder() .clustering().cacheMode(CacheMode.REPL_SYNC) .build()
注記
GlobalConfigurationBuilder().clusteredDefault() を使用して、事前設定されたクラスター対応の GlobalConfiguration を迅速に作成します。この設定はカスタマイズ可能です。
11.2.4.2. デフォルトクラスター設定のカスタマイズ
以下の GlobalConfiguration コードを使用して、JGroups の設定に使用するファイルの名前を指定します。
new GlobalConfigurationBuilder().transport().addProperty("configurationFile", "jgroups.xml")
.build()jgroups.xml を希望のファイル名に置き換えます。
jgroups.xml ファイルは Infinispan-Quickstart/clustered-cache/src/main/resources/ にあります。
注記
-Djgroups.bind_addr="127.0.0.1" を使用します。これは、すべてのノードが 1 つのマシン上にある状態でクラスターをテストする場合に特に便利です。
infinispan.xml ファイルにある以下の XML スニペットを使用して、 Red Hat JBoss Data Grid の XML 設定を使用するよう JGroups プロパティーを設定します。
<global>
<transport>
<properties>
<property name="configurationFile" value="jgroups.xml"/>
</properties>
</transport>
</global>11.2.4.3. レプリケートされたデータグリッドの設定
以下のコードスニペットを使用して、レプリケーションモードのキャッシュをプログラムを用いて設定します (同期または非同期)。
private static EmbeddedCacheManager createCacheManagerProgramatically() {
return new DefaultCacheManager(
new GlobalConfigurationBuilder()
.transport().addProperty("configurationFile", "jgroups.xml")
.build(),
new ConfigurationBuilder()
.clustering().cacheMode(CacheMode.REPL_SYNC)
.build()
);
}
infinispan.xml ファイルを編集して次の XML コードが含まれるように、レプリケーションモードのキャッシュを宣言的に設定します (同期または非同期)。
<infinispan xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:infinispan:config:6.0">
<global>
<transport>
<properties>
<property name="configurationFile" value="jgroups.xml"/>
</properties>
</transport>
</global>
<default>
<clustering mode="replication">
<sync/>
</clustering>
</default>
</infinispan>private static EmbeddedCacheManager createCacheManagerFromXml() throws IOException {
return new DefaultCacheManager("infinispan.xml");}注記
org.infinispan.jmx.JmxDomainConflictException: Domain already registered org.infinispan などのエラーが表示されることがあります。
GlobalConfiguration glob = new GlobalConfigurationBuilder()
.clusteredDefault()
.globalJmxStatistics()
.allowDuplicateDomains(true)
.enable()
.build();
11.2.4.4. 分散されたデータグリッドの設定
numOwners パラメーターによって制御され、各エントリーの「所有者」の数が示されます。
numOwners の値を調整し、容量、永続性、および可用性のバランスが取れるように設定してください。JBoss Data Grid のトポロジーに対応する一貫性のあるハッシュによって、永続性がさらに向上されます。このようなハッシュは、さまざまなデータセンター、ラック、およびノードの全体でエントリーの「所有者」を検索します。
次のように、ディストリビューションモードのキャッシュをプログラムを用いて設定します (同期または非同期)。
new ConfigurationBuilder()
.clustering()
.cacheMode(CacheMode.DIST_SYNC)
.hash().numOwners(2)
.build()
infinispan.xml ファイルに次の XML コードが含まれるようにし、ディストリビューションモードのキャッシュを宣言的に設定します (同期または非同期)。
<default>
<clustering mode="distribution">
<sync/>
<hash numOwners="2"/>
</clustering>
</default>
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.