21.4. Hot Rod クライアント
Hot Rod は、Data Grid がリモートクライアントで高性能データ転送機能を提供するバイナリー TCP プロトコルです。
クライアントのインテリジェンス
Hot Rod プロトコルには、クライアントにキャッシュトポロジーの最新のビューを提供するメカニズムが含まれています。クライアントインテリジェンスは、読み取りおよび書き込み操作のネットワークホップ数を減らすことにより、パフォーマンスを向上させます。
同じ OpenShift クラスターで実行されているクライアントは、Data Grid Pod の内部 IP アドレスにアクセスできるため、任意のクライアントインテリジェンスを使用できます。
HASH_DISTRIBUTION_AWARE は、デフォルトのインテリジェンスメカニズムであり、クライアントがリクエストをプライマリーオーナーにルーティングできるようにします。これにより、Hot Rod クライアントに最高のパフォーマンスが提供されます。
別の OpenShift または OpenShift の外部で実行されているクライアントは、LoadBalancer、NodePort、または OpenShift Route を使用して Data Grid にアクセスできます。
OpenShift Route を介した Hot Rod クライアント接続には暗号化が必要です。SNI を使用して TLS を設定する必要があります。そうしないと、Hot Rod 接続に失敗します。
暗号化されていない Hot Rod クライアント接続の場合は、LoadBalancer サービスまたは NodePort サービスを使用する必要があります。
Hot Rod クライアントは、次の状況で BASIC インテリジェンスを使用する必要があります。
-
LoadBalancerサービス、NodePortサービス、または OpenShiftRoute経由で Data Grid に接続します。 - クロスサイトレプリケーションの使用時に別の OpenShift クラスターにフェイルオーバーする。
OpenShift クラスター管理者は、Data Grid へのトラフィックを制限するネットワークポリシーを定義できます。場合によっては、ネットワーク分離ポリシーにより、クライアントが同じ OpenShift クラスターで実行されているが namespace が異なる場合でも、BASIC インテリジェンスを使用する必要があります。
21.4.1. Hot Rod クライアント設定 API リンクのコピーリンクがクリップボードにコピーされました!
ConfigurationBuilder インターフェイスを使用して、Hot Rod クライアント接続をプログラムで設定できます。
次の例の $SERVICE_HOSTNAME を、Data Grid クラスターの内部サービス名に置き換えます。
metadata: name: infinispan
metadata:
name: infinispan
OpenShift の場合
ConfigurationBuilder
hotrod-client.properties
OpenShift の外部
ConfigurationBuilder
hotrod-client.properties
21.4.2. 証明書認証用の Hot Rod クライアントの設定 リンクのコピーリンクがクリップボードにコピーされました!
クライアント証明書認証を有効にすると、Data Grid との接続をネゴシエートする際に、クライアントは有効な証明書を提示する必要があります。
検証ストラテジー
Validate ストラテジーを使用する場合、署名済み証明書を提示できるように、キーストアでクライアントを設定する必要があります。また、Data Grid の認証情報と適切な認証メカニズムを使用してクライアントを設定する必要もあります。
認証ストラテジー
Authenticate ストラテジーを使用する場合、識別名 (DN) の一部として署名済み証明書および有効な Data Grid 認証情報が含まれるキーストアでクライアントを設定する必要があります。Hot Rod クライアントは、EXTERNAL 認証メカニズムも使用する必要があります。
セキュリティー承認を有効にする場合、クライアント証明書から Common Name(CN) に適切なパーミッションを持つロールに割り当てる必要があります。
以下の例は、Authenticate ストラテジーを使用したクライアント証明書認証用の Hot Rod クライアント設定を示しています。
21.4.3. Hot Rod クライアントからのキャッシュの作成 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod クライアントを使用して、OpenShift で実行される Data Grid クラスターでキャッシュをリモートで作成できます。ただし、Data Grid は、Hot Rod クライアントではなく、Data Grid コンソール、CLI、または Cache CR を使用してキャッシュを作成することを推奨します。
プログラムでのキャッシュの作成
以下の例は、キャッシュ設定を ConfigurationBuilder に追加してから、RemoteCacheManager を使用して作成する方法を示しています。
この例は、XMLStringConfiguration() メソッドを使用して、CacheWithXMLConfiguration という名前のキャッシュを作成し、キャッシュ設定を XML として渡す方法を示しています。
Hot Rod クライアントプロパティーの使用
存在しない名前付きキャッシュの cacheManager.getCache() 呼び出しを呼び出すと、Data Grid は null を返す代わりに Hot Rod クライアントプロパティーからそれらを作成します。
以下の例のように、キャッシュ設定を hotrod-client.properties に追加します。
# Add cache configuration infinispan.client.hotrod.cache.my-cache.template_name=org.infinispan.DIST_SYNC infinispan.client.hotrod.cache.another-cache.configuration=<infinispan><cache-container><distributed-cache name=\"another-cache\"/></cache-container></infinispan> infinispan.client.hotrod.cache.my-other-cache.configuration_uri=file:/path/to/configuration.xml
# Add cache configuration
infinispan.client.hotrod.cache.my-cache.template_name=org.infinispan.DIST_SYNC
infinispan.client.hotrod.cache.another-cache.configuration=<infinispan><cache-container><distributed-cache name=\"another-cache\"/></cache-container></infinispan>
infinispan.client.hotrod.cache.my-other-cache.configuration_uri=file:/path/to/configuration.xml