3.2. Hot Rod クライアント接続の設定


Data Grid Server への Hot Rod Java クライアント接続を設定します。

手順

  • RemoteCacheManager に渡すか、アプリケーションのクラスパスの hotrod-client.properties ファイルを使用できることを不変の設定オブジェクトを生成する ConfigurationBuilder をクラス使用します。

ConfigurationBuilder

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.addServer()
         .host("127.0.0.1")
         .port(ConfigurationProperties.DEFAULT_HOTROD_PORT)
       .addServer()
         .host("192.0.2.0")
         .port(ConfigurationProperties.DEFAULT_HOTROD_PORT)
       .security().authentication()
         .username("username")
         .password("changeme")
         .realm("default")
         .saslMechanism("SCRAM-SHA-512");
RemoteCacheManager cacheManager = new RemoteCacheManager(builder.build());
Copy to Clipboard Toggle word wrap

hotrod-client.properties

infinispan.client.hotrod.server_list = 127.0.0.1:11222,192.0.2.0:11222
infinispan.client.hotrod.auth_username = username
infinispan.client.hotrod.auth_password = changeme
infinispan.client.hotrod.auth_realm = default
infinispan.client.hotrod.sasl_mechanism = SCRAM-SHA-512
Copy to Clipboard Toggle word wrap

Hot Rod URI の設定

次のように、URI を使用して Hot Rod クライアント接続を設定することもできます。

ConfigurationBuilder

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.uri("hotrod://username:changeme@127.0.0.1:11222,192.0.2.0:11222?auth_realm=default&sasl_mechanism=SCRAM-SHA-512");
RemoteCacheManager cacheManager = new RemoteCacheManager(builder.build());
Copy to Clipboard Toggle word wrap

hotrod-client.properties

infinispan.client.hotrod.uri = hotrod://username:changeme@127.0.0.1:11222,192.0.2.0:11222?auth_realm=default&sasl_mechanism=SCRAM-SHA-512
Copy to Clipboard Toggle word wrap

クラスパスの外部へのプロパティーの追加

hotrod-client.properties ファイルがアプリケーションのクラスパスにない場合は、次の例のように場所を指定する必要があります。

ConfigurationBuilder builder = new ConfigurationBuilder();
Properties p = new Properties();
try(Reader r = new FileReader("/path/to/hotrod-client.properties")) {
   p.load(r);
   builder.withProperties(p);
}
RemoteCacheManager cacheManager = new RemoteCacheManager(builder.build());
Copy to Clipboard Toggle word wrap

3.2.1. クライアント設定での Data Grid クラスターの定義

Hot Rod クライアント設定で Data Grid クラスターの場所を指定します。

手順

  • ClusterConfigurationBuilder クラスを使用して、少なくとも 1 つのノードのホスト名とポートとともに少なくとも 1 つの Data Grid クラスター名を指定します。

    クラスターをデフォルトとして定義し、クライアントが常に最初にクラスターに接続を試みるようにする場合は、addServers("<host_name>:<port>; <host_name>:<port>") メソッドを使用してサーバーリストを定義します。

複数のクラスター接続

ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
clientBuilder.addCluster("siteA")
               .addClusterNode("hostA1", 11222)
               .addClusterNode("hostA2", 11222)
             .addCluster("siteB")
               .addClusterNodes("hostB1:11222; hostB2:11222");
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(clientBuilder.build());
Copy to Clipboard Toggle word wrap

フェイルオーバークラスターを含むデフォルトのサーバーリスト

ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
clientBuilder.addServers("hostA1:11222; hostA2:11222")
             .addCluster("siteB")
               .addClusterNodes("hostB1:11222; hostB2:11223");
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(clientBuilder.build());
Copy to Clipboard Toggle word wrap

3.2.2. Data Grid クラスターの手動切り替え

Data Grid クラスター間で Hot Rod Java クライアント接続を手動で切り替えます。

手順

  • RemoteCacheManager クラスで次のいずれかのメソッドを呼び出します。

    switchToCluster(clusterName) は、クライアント設定で定義された特定のクラスターに切り替えます。

    switchToDefaultCluster() は、Data Grid サーバーのリストとして定義されているクライアント設定のデフォルトクラスターに切り替えます。

3.2.3. 接続プールの設定

Hot Rod Java クライアントは、Data Grid サーバーへの永続的な接続のプールを保持して、要求ごとに TCP 接続を作成するのではなく、TCP 接続を再利用します。

手順

  • 次の例のように、Hot Rod クライアント接続プール設定を設定します。

ConfigurationBuilder

ConfigurationBuilder clientBuilder = new ConfigurationBuilder();
clientBuilder.addServer()
               .host("127.0.0.1")
               .port(11222)
             .connectionPool()
               .maxActive(10)
               .exhaustedAction(ExhaustedAction.valueOf("WAIT"))
               .maxWait(1)
               .minIdle(20)
               .minEvictableIdleTime(300000)
               .maxPendingRequests(20);
RemoteCacheManager remoteCacheManager = new RemoteCacheManager(clientBuilder.build());
Copy to Clipboard Toggle word wrap

hotrod-client.properties

infinispan.client.hotrod.server_list = 127.0.0.1:11222
infinispan.client.hotrod.connection_pool.max_active = 10
infinispan.client.hotrod.connection_pool.exhausted_action = WAIT
infinispan.client.hotrod.connection_pool.max_wait = 1
infinispan.client.hotrod.connection_pool.min_idle = 20
infinispan.client.hotrod.connection_pool.min_evictable_idle_time = 300000
infinispan.client.hotrod.connection_pool.max_pending_requests = 20
Copy to Clipboard Toggle word wrap

これらの設定オプションにより、プールをきめ細かく制御できます。アプリケーションのニーズに応じて、プールをチューニングすることを推奨します。そうしないと、新しい接続を開くときに待ち時間が増加したり、利用可能な接続が少なくなってスループットが低下したりする可能性があります。

ロードが急増すると、大きなプールは新しい接続で「群集効果」が発生する可能性があります。ただし、リクエストに対応する接続が増えると、スループットが向上するはずです。小さいプールはこの影響を回避するため、消費されるリソースが少なくなります。ただし、処理できるリクエスト数が制限されるため、上限に達するとパフォーマンスが低下し始めます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat